新人用半年时间自学,能不自学后期制作能学会吗Linux找到工作?

初学者用哪个版本的Linux系统学习最好【linux吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:180,576贴子:
初学者用哪个版本的Linux系统学习最好收藏
大二了,有了Linux系统这门课了,查了下,版本太多,又是新手,特来求教,新手用哪个版本学习最好啊,还有,能不能和WIN7一起装双系统呢?课本上说红旗的可以,但还是来问问先。还有
我的机器是64位的。真心求教
阿里云云市场镜像可以一键部署云服务器所需要的运行环境和个性化的软件应用,满足建站,应用开发,可视化管理等个性化需求,linux镜像让云服务器&即开即用&.
我晕,这是两个啊。。。我还以为是一个系统呢。。。。
顶2楼。红旗已经转向珠峰了。
这是我下的一个ubuntu,应该怎么装?
这是运行了wubi.exe之后就弹这玩意呃,也无法取消了
找了个Fedora 8.0的,有3.71GB,正常么???感觉好大,和我WIN7专业版的差不多了
8楼回答完了。。3.7G? DVD版的这算正常的。一般linux DVD不光带系统,还带了很多常用的工具,软件,依赖包。
正常,捆了一堆东西的版本,吧?
fedora 8.0没有官网意识么
现在已经16.0,8.0是多少辈爷爷了
linux服务器,企业采购嗨购11天,最高返500元苏宁卡,爆款提前抢!苏宁易购,正品保障,急速物流,售后无忧,多种付款方式任你选,24小时一对一提供优质服务!
Ububntu太傻瓜了,以至于都不原汁原味了。不建议用来学习。Fedora可以,但是我个人认为软件有点少,不过学习的话够用了。所学艺术专业的,用的opensuse,推荐~
真想学到linux知识那就debian吧
想尝鲜就用ubuntu、fedora,想稳定就用debian、RHEL。顺便推荐一下LFS,听说gentoo也差不多。整个虚拟机,照着官方文档走几遍。看懂了,对于linux的基础学习帮助很大(亲身体会,刚弄过几遍,受益匪浅)。但是有前提,必须有足够的耐心,和一块经得起折腾的硬盘。(安装一次LFS要十多个小时)
fedora和ubuntu随便选一个,ubuntu的话国内用的较多,但bug太多,ubunu11.04让我受不了,才换了fedora,fedora相对来说稳定点,有redhat强而有力的支持,感觉不错
最好的是你们课本上用的。ubuntu修改了太多,用的桌面是Unity,使用startup启动,runlevel也跟很多发行版的设置不太一样,倒觉得不太适合新手诶~我用的是centos,redhat的免费版,貌似很不错
现在也不知道刮的哪门子风。。。学校推荐的大部分都是RH9.0。。多坑爹啊。
基本原理都差不多,学会了rh9.0其他的自己稍微学学也差不多了。记得c语言还是用turbo 2.0学的,后来的gcc学起来也没多累了。
米还分陈米和新米呢。。你喜欢吃陈米还是新米?反正都是米。。也吃不死人。。为什么人家买新米,不买陈米。。也就是这个道理。
我认为道理不太一样,陈米营养价值和新米营养价值不一样,所以人们要买新米。老的linux对于学习而言未必一定落后于新的linux版本,所以没必有追新。
有什么不一样的。。老的linux里的BUG和跟目前各种应用的不兼容。这些也就相当于营养不一样。。你用新版的RHEL装完的系统。。跟用RH9.0后装完的。。对比在配置其他的东西。。那肯定是不一样的。尤其对于新手。。费死劲扣了半天RH9.0。。你问问现在各大公司企业单位。有用RH9.0上面跑应用的吗?还不如直接一步到位。。绕那么远干嘛。。没错从理论上用RH9.0没什么。反正都是学习。但是在实际运用中...还是有很大出入的。你不觉得吗?
rh9肯定不适合实际使用,但是学校里学的都是基本的东西比人ls,rm,mv这些,这就无所谓了。实际的东西是要在以后工作了学的,那个时候就要求比较新的系统了。所以就像我认为学c用turbo2.0没什么不妥,都是打基础的东西。以后gcc,c99有了基础学的还不快嘛?
这年月都讲究。。不输在起跑线上。。。如果学校里老师让你用RH9.0。但是各大RHCE培训班。。都已经开始用RHCE6.0考试了。那个企业会只要一个只会ls,rm,mv这些东西的家伙。。现在基本上来。。你就的干活。。工作了在学?哈哈。。你谁啊?你学C贵在不是学turbo。。而是学C。。C从以前到现在一直到未来,它就是那样没有改变。。没改变怎么学不都行。。而现在新的技术新的内容是建立在新的系统上才可以实现的,你用老系统怎么去学?
我的意思是打基础是什么都可以,你难道不认为学了rh9.0再去参加rhce6.0的培训要容易些吗?学习可不是学校那点东西就够了的。
既然都学了RH9.0为什么还要参加RHCE6.0的培训?。。就为了以后学起来更容易些。。哈。。多此一举。。浪费时间。。哦吗高。。为了个RH9.0跟你废这么多话。。喜欢用就用吧 。。。反正跟我没关系。
我的意思是拿rh9.0做练习之类的,当然不是拿来部署的。ps:我其实没用过rh9.0,难道他不是像其他linux版本,没有linux基本命令。不懂
现在都是拿来主义。。实用主义。。。至于知识,理论,这些需要兴趣和时间。兴趣不是说有就有,时间也不是说有就有。。以完成工作为目的。。欧卧。。能完成工作就ok..剩下都白扯。。我。。嗯哼。。就是这么认为的。
登录百度帐号推荐应用新手必看--学习linux的七个忠告-专业自动化论坛-中国工控网
新手必看--学习linux的七个忠告
给TA发消息
加TA为好友
发表于: 11:41:53
新手必看--学习linux的七个忠告1、不要“玩 Linux” 很多人用 Linux 的时候会感觉很迷茫,该用哪个发行呢?是不是我少装了什么?怎么升级这么快啊!怎么这么不稳定!每当遇到新的软件他就想试用,每当新的版本出现,他就更新,然后用鼠标在新的菜单里选择从来没见过的程序来用用。 其实你是为了Linux而使用Linux,而没有找到正确的理由来利用 Linux。你首先要明确用电脑的目的,你用它是为了解决你的实际问题,而不是为了学习安装操作系统,不是为了测试哪个版本好用,不是为了“赶上潮流”,更不是因为你硬盘太大了,你想多占点空间。 如果你启动了电脑之后不知道应该干什么,那么最好先不要用电脑,因为你可能有更重要的事情需要做。 2、不用挑剔发行版本 很多人刚开始用 Linux 的时候,总是在怀疑别的发行版本是否比自己正在用的这个好,总是怀疑自己以后时候会失去支持,不得不换用别的发行。所以很多人今天是 Redhat,明天又换成了 debian, 一会儿又是 gentoo, …… 甚至有的人在一台机器上装了两个版本的 Linux,然后比较哪一个好。 其实你完全没有必要这样做,任何发行,只要你熟悉了,你在上面的工作方式几乎是不会受到任何影响的。你常常听说 Debian 的更新比 Redhat 快,包比 Redhat 多,但是你可以比 Debian 更新还要快,直接到你需要的程序的主站点下载源码来编译就是了。 Debian, TurboLinux, SuSE, Redhat, Gentoo, ... 任何一个版本都是不错的。 3、不要当“传教士” 很多人在讨论区不断的引起 &Linux vs. Windows& 之类的讨论,甚至争的面红耳赤,这是没有必要的。因为各人的需要不同,生活的环境不同,你不可能得到一个定论。我们需要尊重别人的选择,这是你在进行任何对工具的讨论前需要提醒自己的事情。面对一些容易引起争论的东西:Word 和 TeX;Emacs 和 VIM;MAXIMA,Mathematica 和 Maple;Gnome,FVWM 和 KDE;Mutt 和 Pine …… 一定要冷静。 你需要关心的不是你的工具是什么,而是你用它做了什么。精通 Linux 并不说明任何问题,因为它只是一个工具而已。如果你用 Windows 能很好的完成你的任务,那你就没有必要费时间去熟悉 Linux。直到有一天你发现一项任务只有 Linux 才能完成的时候再换也不迟,因为你身边的 Linux 的爱好者一定会很乐意的帮助你。 并不是喜欢一种东西就必须反对其它的。世界需要多样性,人们都需要FUN。用自己的兴趣去压制别人的,就会毁掉所有的兴趣。个人喜欢什么就用什么,完全没必要为这个争论。 不要做“传教士”!你说我现在就是在“传教”?冤枉啊~ 4、直接从源码安装程序 很多人放着最新的源码不用,等着有人帮他做出 rpm, deb, 才能安装。我说你为什么不用源码编译,这样版本比 rpm 高的多,有很多新功能,而没有烦人的依赖关系。可是他说:“要是我用源码编译安装,卸载的时候就不方便了,会留下很多垃圾。” 为什么程序还没有安装你就想到卸载?难道你不知道这个程序是用来做什么的?你应该改变到处找程序来试用的作法,而应该先了解一下到底那些程序有同样的功能,听听别人的意见,看看它们各有什么长处和短处,然后挑一个最适合你的程序来用。 从源码编译安装程序,不但比你装rpm更适合自己的机器设置,而且它们一般会装到 /usr/local 目录,这样你以后如果换硬盘重装系统,也可以把以前 /usr/local 下的程序原封不动拷贝过去用。我的 /usr/local 下有 2G 之多的程序,你想要是我有一台新机器要重新安装,然后配置,得花费多少时间?实际上我曾经通过网络把它们传到一台新机器上,然后就出去吃晚饭,回来时我就得到了另一台一摸一样的 Linux 机器。 确实要卸载 make install 的程序怎么办呢?答案是直接删掉。别以为直接删掉程序会留下垃圾,引起“系统不稳定”。(btw: 这是谁教你的啊?呵呵。) make install 无非就是把可执行程序放在 /usr/local/bin, 把某些函数库放在 /usr/local/lib,把数据文件放在 /usr/local/share 下一个它自己的目录,你把这些东西都删掉就行了,不会留下垃圾,即使真的留下一点文件没有删掉也占不了多少空间,更不可能引起系统不稳定。UNIX 就是这么简单 但是有几个程序不建议从源码安装,它们是 Mozilla, Open Office, ... 它们编译时会占用你几个G的空间和好几个小时的时间,这种花费我觉得是不值得的,因为你不能从编译得到更多好处,不如直接安装编译好的版本。 5、不要盲目升级 不知道这是心理作用还是什么,有的人看到比较大的版本号,就会很想换成那个。很多人的 Redhat 本来配置的很舒服了,可是一旦 Redhat 发行新的版本,他们就会尽快下载过来,然后选择升级安装。结果很多时候把自己原来修改得很好的配置文件给冲掉了。新的软件又带来了新的问题,比如有一次我的 rxvt 升级到 2.7.8 就跟 miniChinput 冲突了,升级到 Redhat 8.0,发现 xmms 居然缺省不能放mp3了,XFree86 的 xtt 模块在 I810 上有新的 bug,会导致 Mozilla 突然退出。 如果你已经配置好了一切,千万别再整体升级了,这会浪费你很多很多时间的,不值得。如果需要的话,你可以只把某些部件升级,比如内核,glibc, gcc, XFree86,... 使用 UNIX 的经典程序 好的程序一般都是可以很方便的在很多种 UNIX 上移植的,bash, VIM, Emacs, Mutt, FVWM, xterm, 都是这样。如果你用这些程序,你就可以在 Sun, HP, ... 等工作站上也装上,这样你在各种机型上的工作环境就几乎完全一样了!你不需要在 Sun 上面用 CDE,在PC上又换成 KDE,在它们上面都装一个 FVWM,使用相同的配置文件,就能得到一致的界面。 这些程序大部分都是久经考验的,是经过很多人多年开发的结果。它们功能完善,各种情况都考虑周全,绝对是你的好助手。 6、不要配置你不需要的东西 如果你只想做一个像我这样的普通用户,主要目的是用 Linux 来完成自己的科研任务和日常工作,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。普通用户学习那些不经常用到的复杂的维护系统的工具,其实是浪费时间,学了不用是会很快忘记的! 我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,设置好 ssh, ftp 已经足够了,那样可以省去我很多麻烦。我从来不过度考虑“安全”,因为 Linux 缺省已经很安全了。我没有磁带机,就不用管 tar 的那些稀奇古怪的参数了,czf, xzf, ztf 已经可以满足我所有的需要。sed, awk, ... 我也只会几种常用的命令行。 7、不用忙着看内核源码 除非你想研究操作系统,否则还是先把怎么使用 Linux 掌握好再说吧。我以前看了那么多内核源代码,写了驱动程序,结果最后发现我还是一只很多事情不能用 Linux 解决的菜鸟 吸取我的教训吧,你应该首先掌握 shell,Xwindow 的使用和原理,它们可不比内核简单。对嵌入式培训有兴趣的童鞋,给大家推荐一个信盈达嵌入式培训学院,在深圳、广州、郑州都有培训中心,6-15人小班教学,有兴趣的可以去免费试听一下。
给TA发消息
加TA为好友 发表于: 12:01:53 1楼
受教了,看了颇有收益。Linux初学者,在Raspberry Pi上面装了个Debian,用于测试web应用程序。
给TA发消息
加TA为好友 发表于: 14:00:07 2楼
这七个建议是阻止初学者进步的,个人不赞同。还是根据兴趣来吧,刚学linux本来就枯燥,喜欢怎么折腾就怎么折腾,最关键的是会用社区和Google。
给TA发消息
加TA为好友 发表于: 17:43:26 3楼
顶,我用的是ubuntu 12.04.
给TA发消息
加TA为好友 发表于: 19:48:43 4楼
下载学习,谢谢楼主。...
周点击排行周回复排行
[2788] [274] [158] [155] [115] [102] [95] [92] [91] [89]
[32] [20] [12] [9] [9] [9] [9] [8] [8] [7]最新求助
[0] [6] [5] [12] [8] [0] [9] [3] [1] [20]谈谈我的学习工作经历,自学linux去中兴上班
日 11:17 来源:电子发烧友论坛 作者:佚名 (0)
  作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。
  在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学、纯逻辑的题目,不涉及界面这些东西,很适合煅炼你的编程能力。回到主题,首先我们要明白你的目的是什么,大概来说所谓嵌入式Linux可以分为两部分:底层系统、应用开发。如果你是想做应用开发,那么你去把C语言、数据结构、JAVA什么的学好吧。嵌入式应用开发和PC上的应用开发并没有什么特别要注意的。也许你说在嵌入式上要做些优化,是的,要优化,但是未经优化的程序和PC上的程序开发没什么差别。另外,当你有能力去优化时,你已经不用来问这个问题了。具体到某个例子,比如说开发界面,在PC上我们用VC;在嵌入式Linux里也许我们用QT也许用Android,这个时候你应该去学学QT、Android的编程。但是基础还是C或JAVA,在此基础上去熟悉它们的接口。你学过VC的话,也是要花时间去了解那些类、控件的。
  如果你的目的是想学习底层系统,这是我的专长,倒是可以说一点。在回答这个问题之前,我先回答:不少人问我,到底是学驱动还是学应用?我只能说凭兴趣,并且驱动和应用并不是截然分开的
  1. 我们说的驱动,其实并不局限于硬件的操作,还有操作系统的原理、进程的休眠唤醒调度等概念。想写出一个好的应用,想比较好的解决应用碰到的问题,这些知识你应该懂。
  2. 做应用门槛低,特别是现在的ANDROID,纯JAVA。做应用的发展路径个人认为就是业务纯熟。比如在通信行业、IPTV行业、手机行业,你了解行业的需求。所以,当领导的人,多是做应用的。
  3. 做驱动,其实我不想称为&做驱动&,而是想称为&做底层系统&,做好了这是通杀各行业。我工作几年,做过手机、IPTV、会议电视,但是这些产品对我毫无差别,因为我只做底层。他们的业务跟我没关系。当应用出现问题,他们解决不了时,我就会从内核角度给他们出主意,给他们提供工具。做底层的发展方向,个人认为是技术专家。
  4. 其实,做底层还是做应用,之间并没有一个界线,有底层经验,再去做应用,你会感觉很踏实。有了业务经验,你再了解一下底层,很快就可以组成一个团队。
  回到怎么学的问题上。嵌入式Linux底层系统包含哪些东西?不要急,举一个例子你就知道了。
  1. 电脑一开机,那些界面是谁显示的?是BIOS,它做什么?一些自检,然后从硬盘上读入windows,并启动它。类似的,这个BIOS对应于嵌入式Linux里的bootloader。这个bootloader要去Flash上读入Linux内核,并启动它。
  2. 启动windows的目的是什么?当然是上网聊天什么的了。这些上网、聊天工具在哪?在C盘、D盘上。所以, windows要先识别出C盘、D盘。在Linux下我们称为根文件系统。
  3. windows能识别出C盘、D盘,那么肯定能读写硬盘才行。这涉及的东西称为驱动程序。当然不仅仅是硬盘,还有网卡、USB等等。嵌入式Linux能从Flash上读出并执行应用程序,肯定也得有Flash的驱动程序啊,当然也不仅仅是Flash。
  先说到这里吧,嵌入式LINUX里含有bootloader,内核, 驱动程序、根文件系统这4大块。
  一、bootloader:
  它就是一个稍微复杂的裸板程序。但是要把这裸板程序看懂写好一点都不容易。Windows下好用的工具弱化了我们的编程能力。
  很多人一玩嵌入式就用ADS、KEIL。你能回答这几个问题吗?
  1. 一上电,CPU从哪里取指令执行?答:一般从Flash上指令。
  2. 但是Flash一般是只能读不能直接写的,如果我用到全局变量,这些全局变量在哪里?答:全局变量应该在内存里
  3. 那么谁把全局变量放到内存里去?答:长期用ADS、KEIL的朋友,你能回答吗?这需要&重定位&。在ADS或KEIL里,重定位的代码是制作这些工具的公司帮你写好了。你可曾去阅读过?
  4. 内存那么大,我怎么知道把&原来存在Flash上的内容&读到内存的&哪个地址去&?答:这个地址用&链接脚本&决定,在ADS里有scatter文件,KEIL里也有类似的文件。但是,你去研究过吗?
  5. 你说重定位是把程序从Flash复制到内存,那么这个程序可以读Flash啊?答:是的,要能操作Flash。当然不仅仅是这些,还有设置时钟让系统运行得更快等等。
  先自问自答到这里吧,bootloader这一个裸板程序,其实有3部分要点:
  1. 对硬件的操作
  2. 对ARM体系处理器的了解
  3. 程序的基本概念:重定位、栈、代码段数据段BSS段什么的。
  对硬件的操作,需要看原理图、芯片手册。这需要一定的硬件知识,不求你能设计硬件,但是至少能看懂; 不求能看懂模拟电路,但是要能看懂数字电路。这方面的能力我是在学校里学到的,微机原理、数字电路这2本书(书名忘了)就足够了。但是我怀疑你有无耐心把这2本书看完。我不知道现在有没有更快捷的书。想速成的话,就先放掉这块吧,不懂就问GOOGLE、发贴。另外,芯片手册是肯定要读的,别去找中文的,就看英文的。开始是非常痛苦,以后就会发现那些语法、词汇一旦熟悉后,读任何芯片手册都很容易。
  对ARM体系处理器的了解, 看杜春蕾的《ARM体系架构与编程》吧,里面讲有汇编指令,有异常模式、MMU等。也就这3块内容需要你了解。
  程序的基本概念,王道当然是去看编译原理了。可惜,这类书绝对是天书级别的,劝你若非超级天才还是别去看了。
  对于bootloader,我学习时是先看了《ARM体系架构与编程》,然后自己写程序把各个硬件的实验都做了一遍,比如GPIO、时钟、SDRAM、UART、NAND。把它们都弄清楚了,组台在一起就很容易看懂u-boot了。总结一下,看懂硬件原理图、看芯片手册,这需要你自己去找资料。
相关技术文章:
相关资料下载:
上周热点文章排行榜
上周资料下载排行榜
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
创新实用技术专题
拥有共同的方向和目标,不是朋友,就是对手——这句话也适用于现...您的位置: >>
  好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客了。有时间能静下来写点东西总是很好的一件事,如果写技术方面的博客,不仅能给读者提供一些解决问题的线索,也能加深自己对技术点的理解,如果写的是自己对项目的感悟,也算是对自己所做的工作的总结。现在终于有时间写点东西了,感觉还是不错的。
  今天这篇博客不是写关于具体技术的,而是我对程序员怎样学习和提高自己能力的一些感悟。我是今年7月初毕业的,离开学校后就直接进入之前实习的公司上班了。现在算来工作了也将近半年了,算上实习的时间,将近一年了。在这期间,参与了几个android项目的开发,也维护过别人写的项目,虽然都不是很大的项目,但也学习了不少东西。在这其间,我亲身经历了一个设计拙劣的项目,是怎么样一步步趋于混乱而最终变的完全不可维护。从这件事情我了解到优秀的程序员是多么可贵,而&不优秀&的程序员是怎样把项目一步步的搞砸搞烂,也了解到做出一款优秀的软件是多么的困难。什么样的程序员才算优秀的程序员,而什么样的程序员是&不优秀&的?(我不愿意说别人坏话,只能委婉的说&不优秀&)作为一个工作不到半年的新人,谈论这个问题好像没什么权威性可言, 我也只是简单的谈论一下自己的看法,鉴于自己的阅历和经验不是很丰富,难免具有局限性,读这篇文章的读者可以指出我的错误。
  我认为,优秀程序员和不优秀程序员的区别首先是态度上的区别。优秀的程序员有自己的理想,他们想做出好的东西,而不是混混日子而已,他们思考很多,不管是项目开始之前还是在项目进行中,项目完成之后也会进行总结。他们对待问题比较严谨,思考比较全面,在动手写代码之前肯定经过了一定的思考,对可能引入的问题进行预估。而不优秀的程序员对待问题比较随意,也就是态度上不是那么认真,代码写的也比较随意,从不考虑以后的变化因素,今天吃饱不管明天肚子饿,他们不会意识到他们的代码已经污染了整个项目。在发现问题时,优秀的程序员总是想办法弥补,他们会找出自己的代码写的不好的地方,谨慎的修改或大胆的推翻重写,这样的话把问题消灭在萌芽阶段而不会让整个项目偏出正轨。而不优秀的程序员,很少能发现问题,即使能发现问题,也是迟迟不肯做出弥补,他们总是侥幸的认为这些问题不会在后期暴露出来,所以问题越积越多,最后导致整个项目混乱不堪,错误百出,无法维护。
  除了态度上的不同,在能力上也有很大的差别。显而易见,优秀的程序员懂得比较多,他们乐于深入研究原理,对底层的知识有一定的了解或者了解的很透彻,而不只是停留在调用一个API;而不优秀的程序员一般不喜欢思考,对原理的兴趣也不多,他们不愿意花一些时间把一些问题搞明白,而只是简单的调用一下API,如果解决不了问题,随便在网上搜一段代码复制过来就万事大吉。所以遇到比较难缠的问题,优秀的程序员总是能从原理出发,一针见血的看出问题的真正原因,进而解决问题,而不优秀的程序员总是停留在表面,在网上搜了很长时间也没有解决问题。我深切的认识到,如果只是停留在调用API而不深入原理,永远也用不好API。
  除此之外,优秀的程序员的另一个特点是善于并乐于学习,他们对自己所从事的工作有浓厚的兴趣,有强烈的好奇心,他们总是想把问题弄明白,他们喜欢清晰,而不是迷迷糊糊的感觉。对一个人的进步起决定性作用的因素是刻苦的学习,而不是所谓的&经验&。就像有人说的那样,在公司里工作不会使你成为大牛,只有持续的学习才能让你有长足的进步。现在很多招聘职位要求有几年的工作经验,这是最容易让人误导的。工作时间长的就能力一定强吗?举个例子,有两个清洁工,一个干了十年,每天还在默默的工作,而另一个只干了几天,经过自己的思考发明了一个新的工具或方法,让他的工作事半功倍。所以说,工作经验是很虚的东西,他用时间来计量,一个人工作了5年,他可能在5年中每天都学习进步,也可能一个经验用了5年而没有什么实质性的提高。
  扯了这么多,好像和题目没什么关系。现在扯点和题目相关的。作为一个搞Android应用开发的,我为什么要学Linux呢?我工作中又不会写Linux程序,再说Linux内核博大精深,代码海量,关系错综复杂,学习Linux内核肯定要耗费大量的时间和精力,那我为什么还要学呢?在说这个问题之前,先谈谈我对学习的看法。
  在学习一个东西之前,出于保险起见,我们总是会询问别人的意见,而在这些意见中,总是会有人说学这个干什么,工作中又用不到。如果谁给了你这样的建议,那么你一定要小心,因为基本上可以断定他是一个不爱学习的人。有很多东西,不是因为你&感觉&有用才学它,而是学了之后才能知道它有用。我的一位朋友是做C#的,他在业余时间学了Perl,当时学的时候总是有人认为没有用,但是当他学会之后,可以使用Perl强大的文本处理能力,去整理格式混乱的源码文件,可以写个程序自动的给领导发邮件。还有我大学的一位老师,年轻时因为英语比较好,被单位派去美国,获得了深造的机会,回来后做了我们学校的物理系主任,很多人也认为英语没有用,呵呵。我进入公司实习的时候,看了设计模式,在我翻看《Head First设计模式》时,被一个有经验的同事看见了,他告诉我看设计模式没有用,因为我们的项目是不会用到设计模式的。我不知道这是什么逻辑。反正当我看完设计模式之后,真的被这些设计巧妙而又极具实用性的模式所震撼,在以后的项目中,我大量使用了这些模式或者设计原则。所以如果一个工作了两三年或者更长时间的程序员还没有学习过设计模式,我会深深的鄙视他,认为他不是一个真正的程序员。
  我上大学时学习了Java语言,当时还费了不少劲。基本的语法比较熟悉了之后,还是感觉到有些东西总是糊里糊涂,不够清晰,比如说不知道反射是怎样工作的。所以找了《深入Java虚拟机》来看,当我看了两遍这本书之后,感觉到原来不清晰的地方都显得自然而然,知道了class文件结构是怎样的,类是怎样被加载的,指令是怎么样被执行的,方法是怎样被动态绑定的。这些知识对我有很大的帮助,假如我不学习Java虚拟机,只是单纯的写Java程序,即使写上10年,也不见的比我现在对Java的理解更透彻。
  说了这么多,只是想说学习是有用的,大大的有用。一个经验用5年并不等于有5年的工作经验,一个不学习的程序员是不会有什么发展机会的。所以,对于一个Java程序员,还分不清对象和对象的引用,对于一个iOS程序员,还分不清ViewController到底是MVC中的视图还是控制器,那么没错,你该学习了,该静下心来好好巩固一下基础了。
  最后,来到正题。我为什么学习Linux内核?首先,我对Linux有很深的兴趣和好奇心,我喜欢专研一下。从实用性出发,我可能一辈子都没有机会编写Linux内核,也可能一辈子都不会从事Linux驱动开发相关的工作,但是我知道它对我是有用的。能进一步加深对操作系统中概念和实现的理解,对底层的深入理解,能让我打下扎实的基础。一些新技术其实都是架构在基础的东西之上的。基础牢固,以后再学习什么新技术都会水到渠成。有人可能会反驳,说学习底层的东西没用,优秀的程序员应该专注于设计,项目管理或架构等上层的知识,我的观点是,设计、项目管理或架构等上层的知识和底层的知识一点都不冲突,不懂底层的人,基础不扎实,在上层也不会走的顺畅,设想一下,如果没有深厚的基础知识,你怎么能知道自己架构出来的东西能不能实现呢?
  写到这里文章就写完了,由于比较困,可能写的有些散乱,在最后总结一下这篇文章的主要观点。
  总结:
  1. 我们要做优秀的程序员,不要做&不优秀&的程序员;
  2. 学习是有用的,如果有人给你的建议是学XXX没用,那么你可要当心;
  3. 底层的知识和高层的知识不是不能相容的,真正优秀的程序员应该两者兼顾。
程序人生热门文章
程序人生最新文章}

我要回帖

更多关于 自学后期制作能学会吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信