2019独角兽企业重金招聘Python工程师标准>>>

first

程序员真的是吃青春饭吗?不是这样的!

在国内,很多人说程序员是吃青春饭的,一开始说过了30岁就得转行,后来又有人35岁是一道坎……看起来好像程序员真的和风尘女子一样,注定有朝一日会徐娘半老,年老色衰不再受人青睐。

No!我要说,不是这样的!

上帝说:

所有的道路都通向天堂heaven
只是要度过路上的痛苦时光
那一天我正走在路上
两边的荒草,比人还高
——ょし

真的程序员,敢于直面惨淡的人生和淋漓的鲜血,一定能够在荒草满布的岁月荒原里踏出一条自己的路来。

其实别人说的话,听一听就算了,决定还得自己来做。面对别人的怀疑、否定、讥讽,我们只需要坚定地前行,做给他看。行动是最好的证明,多坚持一秒,未来就会不同。

现在就实打实的来看看程序员的价值之路在何方。

应用技术

相当大一部分的程序员都在做应用层面的开发,所做的软件用来解决特定场景的问题,给用户的工作和生活带来方便。

开发一个应用,经常会用到高级语言和框架,比如 C# 和 .NET ,比如 C++ 和 Qt ,比如 J2EE ,比如 Ruby on Rails ,比如 Python 和 Django ,比如 Java 和 Android ,比如 Objective-C 和 Cocoa Touch ,比如 JavaScript, PHP……太多了,数不胜数。

应用层面的开发技术,很多人觉得门槛低,小年轻和富有经验的老资格差别不大,后浪会把前浪拍死在沙滩上,所以当新一茬韭菜长成时,老一茬就得玩完了。

其实不是的,即便从纯技术的角度来讲,你对一个语言和框架的理解与把握程度,也会严重的影响开发效率和产品质量。

什么样的人会被轻易替代?不求甚解,似懂非懂,干了多少年还看不透所用技术的本质,遇到问题仍然懵懂不解茫然无措,这样的程序员,注定很快被一大波正在赶来的小鲜肉挤下工作岗位。

假如你对一门语言的各种特性都体察入微了悟于心,假如你对一个框架的机理和各种应用场景都有独特的理解和丰富的实践经验,那你几乎是不可替代的,你 已经成了这个语言和框架方面的专家,价值不可估量。你的一句话就可能为一个项目节省几个月的时间,别人一筹莫展的问题到了你这里分分钟就搞定。

所以,不要理会“能 Run 就行”、“完成任务就可以了”、“用不到学那么深干什么”之类的话,在你用完一项技术解决了一个实际问题满足了某个需求之后,继续钻进去吧,多学一点,深 入一点,日积月累,你必然会与众不同。上班时没时间,那就下班了继续投入。记住,你的学习和研究都是为了自己,不是为了老板,不是为了项目,你唯一的产品 就是你自己,而这个产品值得一辈子打磨。

高难技术

有一些技术,门槛是相对较高的,比如汇编语言,比如操作系统内核,比如驱动……正因为门槛高,回报也高。比如你熟悉 Windows 内核或 Android 内核,能够熟练撰写各种驱动,那找个月薪五六十K的工作不成问题,百八十K都不在话下。惟其稀缺,所以保值。

算法

大部分程序员其实不懂算法,都是用框架里的模块拼积木。如果你妙悟算法真谛,那你就超越了90%的程序员了,你的重要性和价值将不可估量。

比如你精通图像处理算法,比如你精通视频编解码算法,比如你精通搜索推荐相关的算法,比如你在模式识别领域有建树……试看谁能挡得住你前进的脚步!

业务

在一个行业内持续积累,对业务的理解到位,积累深厚,你的价值是巨大的。不信你去浏览招聘网站上的岗位需求,99%都要求相关行业背景。所以,选择一个靠谱的、前景好的行业非常重要,只要这个行业能够不断发展、前进,你的积累就是有价值的,你自己就是不断增值的。

特定领域的业务有一定门槛,比如金融,比如电力,比如电商,比如彩票,比如考古,比如医疗……在这些行业里,你是个业务门儿清的程序员,即便技术不是特别优秀,那也是价值无限的。

产品意识与思维

究竟什么是产品意识呢?我认为产品意识一般包含商业意识、用户意识、创新意识和团队意识。
——《人人都是产品经理》

互联网时代,产品为王。有产品意识,懂产品思维的程序员,是最受欢迎的人群,也是最能做出好产品的程序员。

商业意识通俗地讲,就是要思考这个产品能不能卖出去,好不好卖。这个一定是要有的,程序员虽然很少直接接触市场,但是一个产品成功与否,多数时候就是看市场表现,如果你能关注市场,从市场的角度来看待技术实现,接纳“技术为市场服务”的理念,那你更容易把产品做好。

用户意识是最容易理解的,它是说我们要从用户的角度来思考这个产品该如何设计,因为产品好不好用最终由用户说了算。如果你在实现产品时也能站在用户 的角度来思考,斤斤计较一个功能是否符合应用场景、是否与用户的行为特点吻合、是否贴合用户的使用习惯,那恭喜你,你超越了90%的程序员——大部分程序 员是按产品经理和UI设计师的要求来实现产品。

创新是人类发展的源泉,是社会进步的动力,同样也是产品的核心竞争力。但这里所说的创新不一定是那种颠覆性的创新,也许是把众多不被重视的细节做到 更好,也许只是把另外一种理念引入到这个产品中去,也许是像海底捞的员工一样给用户不一样的感受,这些都是创新。创新意识是产品经理必须有的,否则,他永 远不会有进步,产品永远也做不好。创新意识也是优秀的程序员必须要有的,否则他就不能把一个产品实现得很好,不能把产品的核心竞争力演绎到极致。

当下已不再是孤胆英雄单兵作战的年代,我们要想做好一个产品,多数时候都需要一个团队。团队意识是必不可少的,你是和一帮程序员在一起,你还和产品 经理、UI设计师、业务分析师、项目经理等等在一起,如果你能融入团队,并且能影响、促进其他人为共同的目标做出有效的努力,那么,你这样的程序员,是无 敌的,是国之瑰宝!

说了这么多,究竟你适合在哪个方向下功夫,还需要你自己来做决断。你可能一看便知自己适合做什么,那无需赘言。也可能你有些茫然,不要担心,我们都还有大把的时间,你可以去试着去做,发现不合适了换个方向再来,直到踏上适合你的路。

two,看看国外程序员的经历感想,

首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名hacker,属于那些愿意做一些有挑战性的事情的人。

“当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题。” – WhyTheLuckyStiff

下面是译文

对于下面的文字你不必完全接受,所有这些来自一个其貌不扬的程序员。我喜欢把事情做到最好,而不是对原来的东西修修补补。

仅仅是因为爱好开始做一些创新,这是一个很好的开始!如果你说“我要先学习一下再开始做”那么你永远不会真正开始。每个人都需要从某个地方开始,所以现在打开你的编辑器开始写代码吧。

下面是一些很重要的建议,虽然有人并不认同,但我保证你看完我的分析以后会站在我这一边。一开始,先不要管算法和数据结构。大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后找一些相关的论文去理解算法并动手编程实践。如果没有现成的函数库(其他程序员提供的可重用代码),你用自己喜欢的编程语言来实现它。

选择一门好的编程语言,一门你自认为可以用它快速地做出一些有用东西的语言。

不要选择C语言作为你第一门编程语言。也许选择C语言会给你一种过时的满足感。虽然它比早期的汇编语言提供了更好语法描述,但是今天C(或者C++)不是能够快速编写软件的语言。毫不偏袒的说,我建议你学习一种动态语言。选择一种你觉得语法(文档)让你使用起来更舒服的编程。为此,你可能需要花费一些时间来在几种不同的语言之间进行比较。这么做目的不是为了让你感觉更好或者让编程更容易。更快地完成自己的作品并且能够看到成果,才是激励你编程的源动力。不要选择一门需要某种重量级的IDE(IDE是一种能够帮助你编写并运行代码的工具)才能轻松编程的语言。你所需要的仅仅是一个文本编辑器。

1. 选择一个好的编辑器。

编辑器对程序员而言,就是像是弓对弓箭手一样重要。这里有一些推荐的编辑器:

  • SublimeText 2 – 如果你刚开始编程,推荐使用SublimeText 2
  • Emacs – 学习曲线陡峭,快捷键复杂。如果你想定制自己的使用习惯,需要学习Emacs Lisp.
  • Vim – 不仅操作简洁而且它默认包含在linux的发行版中,所以深受大家欢迎。我开始使用了2年Emacs。由于Emacs的快捷键操作过于复杂,我的双手开始经常疼痛,这迫使我转向了Vim阵营。了解Vim的快捷键是非常有必要的。当你在远程的服务器上编辑代码时,你唯一不需要安装的编辑器就是Vim。

注意!Emacs和Vim可能已经成为成为古董了。但是,它们都具备一些现代编辑器多不具备的功能。

2. 选择一个你可以从中学到东西的操作系统

Windows不会教会你任何东西。使用Windows你唯一学会的就是打开一个exe(可执行)文件来安装软件和使用它。可能刚开始的时候你会觉得很酷,但是长远来看,如果你立志成为一个web开发人员,可能还是要具备基本的linux知识,尤其是当你要发布程序的时候。Linux也允许你根据自己的要求来定制程序。Macs也很酷,但是我认为你现在经济上还负担不起。

3. 不要通过复制粘贴来做备份

一个新手程序员通常会把文件复制粘贴到一个临时目录下面来进行备份。这也许也是他们唯一知道的方法。不要那么做!你需要使用版本控制软件。我强烈推荐使用Git,它是个目前很流行的版本控制工具,而且使用起来非常简单。对一个Git新手,有一个良好的社区和很多参考资源来学习。(除了Git之外,还有mercurial, darcs, fossil等等。但是我还是建议从Git开始,我有很多的理由来支持Git,这里就不多费口舌了。)

4. 知道去哪里寻求帮助

参加一个和你相关的(你使用编程工具相关的)程序员社区。比如StackOverflow就是程序员的Facebook。那里没有消息状态和回复,取而代之的是问题和答案。除此之外还要学会使用IRC。IRC是一种老式的聊天室,现在还在被大多数开发人员用来分享技术信息和帮助解决问题。

5. 培养你的礼仪

知道什么时候问问题。你遇到的大多数问题都是别人碰到过并且在Internet上能够找到解答的。在IRC或者任何论坛里发问之前,先搜索一下google(或者blekko)来看看是不是有现成的答案。在IRC上问问题需要有耐心。永远记住,人们只是处于好心来免费帮助你。有时你发问以后需要几个小时才能有回复。所以,耐心等待。除此之外,记得问问题的时候要礼貌。世界很小,你怎么对待别人,别人就会怎么对待你。

6. 结交朋友,技术书籍只能教你解决常见的问题(他们说:书是死的)

当你在捣鼓一些程序或者从程序的作者那里学习,你能学到一些书本上没有的东西。当你散步的时候,请和遇到的朋友打招呼。你肯定不是唯一的程序员。和其他的程序员一起交朋友一起工作。你会注意到,当一群技术爱好者在一起的时候,不论话题是从什么地方开始,最后总是以技术话题收尾。这是必然的现象。所以你可以尽情参与。在你的黄金年龄努力编程,我能告诉你的是,我在开始6年前寻找朋友并开始讨论编程,从那时起才学到那些书本和文章不会我的东西。所以我总是说,我的编程经验有6年,因为只有那个时候开始,我才开始与人交流并开始感觉真正地开始学习编程。

7. 参加开源项目

为开源项目编写代码能带来回报。这不仅仅是帮助别人,你留下的代码会被其他人使用或(可能)改进。当别人给你的代码添加功能或者提出修改意见时,也是在提高你的编程水平。开源软件项目不一定要是一个大工程,编写一个下载youtube视频的小程序也是很有用的。更重要的是,你会惊奇地发现你编写的代码会成为与他人有效沟通的桥梁。

最后,若干年之后如果本文的内容曾经对你有一点点的帮助,作为回报请写一封类似的信给希望开始编程并不知如何入手的朋友,有可能的话请纠正本文中过时的内容。

智者说过,掌握某个东西需要10年或10000个小时,也就是汉语中的“十年磨一剑”,所以不用着急。

ten  years  for gringing a sword.

adiOS

转载于:https://my.oschina.net/bigfool007139/blog/548439

给new comer程序员的建议相关推荐

  1. 从筛选简历和面试流程讲起,再给培训班出身的程序员一些建议

    本人最近几年一直在外企和互联网公司承担Java技术面试官的职责,大多面试的是Java初级和高级开发,其中有不少是培训班出身的候选人. 在我之前的博文里,从面试官的角度聊聊培训班对程序员的帮助,同时给培 ...

  2. Martin Fowler对全世界程序员的建议

    对全世界的程序员我都是那么几条建议.第一,每年学习并熟悉一个新的编程语言.坚持几年,你对于程序设计会有非常深刻的见解.第二,学习测试驱动开发,这种新的方法会改变你对于软件开发的看法.第三,劳逸结合,不 ...

  3. 写给未来程序员的建议

    给计算机系学生的建议 大概在一两年前,我还在高喊,有着良好用户体验的Windows图形界面式客户端(rich Windows GUI client)将是未来的潮流.尽管我这样说了,但是时不时地还是有大 ...

  4. 6条可以成为更好程序员的建议

    1.研究并持续改进吸收,不仅仅是学习.对自己做过的项目,功能模块,联系进行分析和优化.学习技术是不可或缺的,不断对技术和做过的项目保持精益求精的态度,更加重要. 2.保持惯性.有规律的工作习惯,和每周 ...

  5. 程序员提高建议之踏踏实实“扎马步”

    踏踏实实"扎马步" 今天无意中看了"校长"的"程序员&司机",其中谈到了关于程序员速成的问题.其实速成班毕业的"系统杀手& ...

  6. 写给那些远程办公程序员的建议!

    作者 | Ndepend 译者 | 明明如月,责编 | 郭芮 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 以下为译文: 随着新型冠状病毒肺炎(Corona Vi ...

  7. 史上最全面的程序员招聘建议

    2019独角兽企业重金招聘Python工程师标准>>> 简历 首先要有拿得出手的简历.我们需要通过这些,以便于展示自己的能力给参与招聘过程的人看. 通常,开发人员在这上面投入的时间要 ...

  8. 给程序员的建议(转自李开复)

    给程序员的七个建议 (1)练内功.不要只花功夫学习各种流行的编程语言和工具,以及某些公司招聘广告上要求的科目.要把数据结构.算法.数据库.操作系统原理.计算机体系结 构.计算机网络,离散数学等基础课程 ...

  9. 学计算机专业好还是学医专业好,学计算机好还是学医好 程序员的建议就是学医你认为呢...

    程序员劝高考650分堂弟,放弃报计算机去学医,结果隔天蒙了 每年高考过后,考生们的心情都非常忐忑,一边期待自己什么成绩,另外一边又要为选择什么样的专业和学校烦恼,不管怎么焦虑,这都是每个考生都需要经历 ...

  10. 从面试官的角度聊聊培训班对程序员的帮助,同时给培训班出身的程序员一些建议...

    谈到程序员(尤其是零项目经验的程序员)找工作,培训班是个不可回避的讨论热点.虽然本人也做过兼职Java培训老师,多少了解些培训班的事,但在这问题上无意为任何培训学校站台.而且本人一直在做技术面试官,所 ...

最新文章

  1. Java中Collection和Collections的区别
  2. Python之路,day3-Python基础
  3. DotNet指定文件显示的尺寸
  4. java矩阵三元组相减_实现稀疏矩阵(采用三元组表示)的基本运算
  5. cambridge ifm strategic roadmapping takecontrol in times of uncerntainty
  6. 你解决的问题比你编写的代码更重要! 1
  7. 老王讲设计模式(一)——策略模式
  8. 【loj3056】【hnoi2019】多边形
  9. 智能优化算法:人工电场优化算法-附代码
  10. 程序人生之二 IoC—如何才能快乐
  11. RabbitMQ-理解消息通信-虚拟主机和隔离
  12. host文件的用途和用法
  13. fbx 骨架_骨架修剪
  14. C#课程设计(购物平台)
  15. ROS基础系列(七):机器人的建模与仿真(中)
  16. java写三次函数导数,用导数研究三次函数
  17. 阿里云-轻量应用服务器 jdk tomcat 的配置
  18. 怎么用计算机算三角函数值,如何在手机计算器中由三角函数值求角度
  19. 关于医保你可能不了解的
  20. 2022化工自动化控制仪表特种作业证考试题库及答案

热门文章

  1. JAVA j2se面试题
  2. JavaSE(J2SE)入门学习笔记(二)
  3. POI解析.xlsx格式的Excel文件
  4. fetch.php是什么意思,fetch什么意思
  5. 清除计算机垃圾cmd命令,dos命令清理垃圾,教你dos命令清理垃圾的方法
  6. 【免费-LOGO制作】——U钙网
  7. Windows安全加固-账户管理和认证授权
  8. Android圆盘刻度,类似体重测试仪,效果不错哦
  9. 永洪科技CEO何春涛:PASO模型构建企业大数据能力
  10. DOS简介及常用命令