写给刚入编程的新同学

  大学已经过去了两年,回头看看两年的大学生活,偶尔还是挺失落的。没能做出拿得出手的成绩,在酝酿了一年的之后进入互联网前端行业,逐渐找到了方向。我也常常在思考,怎样的大学才是有意义的?怎样的规划才能在未来获得优势?大学又要怎样的度过。你今后人生的艰难,恰恰不是因为你没能考上一个满意的学校,而是在这所学校里,在一个能让自己自由充分成长的黄金四年里,把自己给荒废了!鞭策自己努力不是偶尔,应该是常态。写这篇文章,是因为自己也处在一个迷茫期,真的有种孤立无援的感觉。暑假的懒惰生活方式,又荒废了自己之前的种种计划。这篇文章算是给自己的一个计划。也是给有缘看到这篇文章的技术人员的一点建议。当然,努力这回事,对所有想成就事业的青年都是一个提醒。荒废青春,往后的几十年里,总有一些时候会深深悔恨现在堕落的自己。

  这篇文章,是我想和即将进入大学有意学习编程的同学谈谈关于编程的事,因为你可能需要一些建议,来步入这个新的阶段。本人大学二年级,经验尚浅,有错误之处,欢迎指出,很感谢!

  编程是非常有趣的一件事情,学会编程就像成为魔术师,你可以创造任何你想创造的东西。在我出生到现在的这 20 年里,除了文学,没有比编程更吸引我的活动。就像 Zed Shaw 所说的,『编程作为一项智力活动,是唯一一种能让你创建交互式艺术的艺术形式。你可以创建项目让别人使用,而且你可以间接地和使用者沟通。没有其他的艺术形式能做到如此程度的交互性。电影领着观众走向一个方向,绘画是不会动的。而代码却是双向互动的。

一些困惑

  但是当你开始接触(我所在的)大学的计算机相关课程,你会发现,所谓的编程学习,无非是老师教一章内容,要求你用学到的语法去解一些数学题。于是很多人选择放弃,认为编程乏味无趣,用很长的课时学习,却只能写出简单的四则运算,或者解数学题。

然而这并非编程的全部,因为这恰恰能生动地表明编程语言只不过是一种工具,你可以用它来解数学题,也能做其它更有趣、更实用的程序。

在(我所在的)大学,计算机相关课程教 C/C++。有一次,一位大三的朋友问我说,『我学 C 学了一段时间,为什么我还是感觉很没用?』我是这样回答他的:

你学 C 学了一段时间感觉没有用处并非你个人的问题,我无法跟你解释为什么,不过我可以告诉你的是,Linus Torvalds 用 C 写了 Linux 和 Git; Antirez 用 C 写了数据库 Redis. 你可能连 Git 是什么都不知道,如何用 C 写出这种水平的程序呢?

  所以,当你学习 C/C++ 基础后进入困惑期时,不要因为用它写不出实用的程序而止步不前,而应该开始接触其它的编程语言。当你所学和所做的东西越来越多的时候,你慢慢就会发现,编 程语言只不过是一种工具,重要的在于你想做什么,用什么语言合适去做(华软的校内游戏直播网站 SISE Game 就是例子,网站的后端用 Ruby on Rails 写,但实时聊天是用 Node.js (JavaScript) ,因为相对于 Ruby, Node.js 更加适合处理 WebSocket)。 你之所以感觉 C/C++ 没用,是因为你暂时还没有足够的眼界和能力去使用他去进行创造。

  应该去学什么?我的建议是一门严谨的强类型语言(如 Java)和一门愉快的脚本语言(如 JavaScript, Ruby, Python)。当然了,如果你想学一些能立竿见影的技能,你也可以写写前端(HTML, CSS)。

So, How?

对于应该如何去学习,我不打算在这里论述,我只想列出一些有用的建议:

0. 无论你要学什么,你读的第一篇文章应该是《提问的智慧》

1. 用 Google 搜索技术相关的信息

2. 购买付费可靠的科学上网服务,不要吝啬一顿饭的钱。

3. 不要害怕英文,英文非常重要。

几乎所有最新的技术在刚出来的时候只有英文文档,优质的 Tutorial 大多数也是英文的。

4. 参与一些质量高的社区,关注一些值得关注的人。

这一点很重要。学校所教的内容是陈旧、过时的(虽然这也许不是学校的错),你必须和社区保持同步,不断接触和学习新的技术。AngularJS 发布至今都有 6 年了,但在我们学校仍然在教 ExtJS,很多学生甚至毕业出来找工作的时候,连 AngularJS 都没听说过。

国内的 V2EX 和国外的 Hackernews 都是不错的社区。

一些现状

  你并不能指望大学的课程或者大学老师能给你带来什么,一切都应该靠你自己。无论在多优秀或者多差劲的学校,学校本身能影响你的是辅助性的,而不是决定性的。在我的学校,几乎都在打游戏和应付考试,据我所知,即使是重点大学,这样的学生也大有人在,我渐渐明白,『你今后人生的艰难,恰恰不是因为你没能考上一个满意的学校,而是在这所学校里,在一个能让自己自由充分成长的黄金四年里,把自己给荒废了』(采铜的回答)

为未来铺路

  如果你以后有意从事编程的相关工作,你应该要知道,在找工作时和其它竞争者拉开差距的,并非你从哪里毕业,在学校当什么干部,而是你有足够的能力,并且能清楚地让别人看到你的能力。

  让别人看到你能力的方法是开源社区和博客,所以我建议你在学习的过程中,多为开源做贡献,甚至可以维护一个自己的开源项目。另外还可以把自己的所学 记录和总结到独立博客中。一个好的 Github Account 和好的独立博客是一份最好的简历。也许你也只有在大学这自由的四年才能有时间做这两件事情。

时间: 2024-12-22 10:36:22

写给刚入编程的新同学的相关文章

如何寻找设计灵感?写给刚入行的设计师(转自UI中国)

如何寻找设计灵感?写给刚入行的设计师 如何寻找设计灵感? 这一次的文章,我想和大家聊聊年轻的设计师在没有那么多经验的情况下如何寻找设计师灵感.(希望这篇文章也能帮助感同身受的你) 每个设计师对设计都有自己的认知,有人把它当艺术,有人把它当手艺活,有人把它当技术,也有人把它当商业实现,我认同的是,当你还没有成为大师之前,设计都只是一个职业而已.商业和艺术的交杂,但是商业的部分远远大于艺术那部分,千万别太把自己当回事. 在有限的时间内(通常是没留下什么时间给你思考的前提下)需要有大量的方案供给你的客

写给刚入行学计算机孩子的一封信

其实我今年大三,充其量也刚刚大三一个月,并没有什么资格在这里班门弄斧,与其是说写给大一孩子的一封信,倒不如说是对我这两年来的学习做一个概述和总结,谈一谈经验和教训,能给新人们一些借鉴 便足矣. 我呢,就读在一个不知名的重本大学,学计科的,众人口中的二流学校的三流专业. 上大学前,我也没有接触过编程,小时候家里有一台windows98不能上网也玩的不亦乐乎,再后来就跑到朋友家上网打游戏,凭着这一腔热血和父母的任我选择迁就我的态度,我就走上了计算机的道路,立志学好计算机,因为它实在太神奇,对我太有魅

写给刚毕业的程序猿同学们,和心浮气躁的现在的我

[匠人多福] (摘自:编程狂人第三十三期--国内WEB前端开发十日谈) 刚出道的校招同学往往更加心高气傲,以为自己有改变世界的本事,一定要参与一个牛逼的团队做一款光鲜靓丽受人追捧能给自己脸上贴金的项目.如果你有这种想法,趁早打消掉这个念头,当然,我们这里先不讨论创业的情形. 第一,如果你刚毕业就加入一个牛逼团队,说难听点,你就是团队中其他人眼中的“猪一样的队友”,不创造价值且拖项目后腿(显然大家都要照顾你的成长啊),按照271理论,你没有理由不是这个1.至少相当长一段时间内是这样. 第二,你在所

写给刚入行的小伙子们

很多刚刚入行的同事,他们能有自己的想法,我鼓励他们用自己的想法去实现,但是我对他们最低要求是实现功能同时,能够保证代码的阅读性,能够保证代码的一定质量.和所有人一样,首先你能够实现产品的功能,如果你不能实现也没关系(偶尔一两次),必须要讲清楚不能实现的原因,我鼓励他们加入自己动脑去思考,而不是成为一个麻木的复制粘贴的码农.希望他们能够从一开始就养成爱思考的,会写代码的程序员.下面说说一下,看了他们代码,觉得不足的地方吧. (一)很多重复的代码 对于刚刚入行的人来说,他们很容易的就会犯这个错误,因

关于刚入行的同学要不要做全栈

事情发生在XX网的手记栏目,作为XX网的粉,偶然间看到一篇全栈工程师写的手记,叫做<成长路径:送给准备入行的同学!>,一时好奇就点进去看了,但是作为应届生的我,对于其一开始就鼓励大家做全栈,并表示这个行业很简单,很多东西,很多方面只需要学一些些这点来说,我个人是不太认同的,所以想来听听大家的看法. 我主攻的方向是前端,现在也做着一名前端开发,虽然前端或许在很多人看来很简单,没什么难点,但我觉得前端不仅是css.html,想全面的掌握前端知识,是需要耗费一定的时间和精力的,不了解培训机构是怎么开

[每日电路图] 7、设计一个PCB的流程及细节&#183;总结——给外行的同学或刚入行的同学一个宏观鸟瞰电路板设计的大致流程的文章

前言 最近两天使用AD14软件设计了一个蓝牙防丢器电路板(PCB)图纸,中间有一些细节在本文中记录下,方便下次设计PCB时参考.也希望能给外行的同学或刚入行的同学一个宏观鸟瞰电路板设计的大致流程的文章. 一.安装AD14.破解.账户注册.插件下载方法大全 链接:http://pan.baidu.com/s/1jHlgZT8 密码:lyg5 ps:此教程仅供技术交流,建议从合法途径购买软件使用权,维护软件开发者权益 具体步骤: 1.下载ISO镜像文件,用utrualISO或者好压加载镜像文件并运行

MySQL DBA 刚入职时如何快速拥抱新的环境

方法何其多.这里介绍的是懒人做法.也就是.借助工具   但是.生产环境是不能随便安装程序的.肿么办?   没关系.我们伟大的percona 已经为我们考虑周详鸟      这里.我们要借助三个工具:      ① pt-summary:绿色纯天然.免安装.下载即用.收集MySQL Server所在OS的基本信息   ② pt-mysql-summary:本地安装.然后远程收集MySQL Server的基本信息   ③ innotop:将MySQL Server的信息分析的粒度做细.让你深入观察和

给刚入职开发者的几句心里话

一,别让自己的身材变样 我身边很多做开发的朋友,也认识一些在这个行业工龄较大的人,有些人是:空叹当年小蛮腰,而今一身五花膘.有些人慢慢地慢慢地就聪明绝顶了.所以一定要保持运动,生命在于运动嘛 二,着重积累,形成自己的开发工具 老程序员扪心自问,我们做了几年的开发,有没有积累自己的Tools?是不是每一个新项目的感觉是,我上一个项目也写了这样的代码?怎么项目做多了都在做一些重复的事情.我们不停地在写,不停地写,为了生活,为了程序-- 我在09年的时候做WinCE,WinCE不像现在的Android

.NET开发者不要再抱怨.NET工资低[田忌赛马]【一个刚入行不久的角度谈.NET工资】

最近博客园里面很多人都说.NET不行,其实你们说的.NET不行也就是说.NET的工资比不上Java,PHP,移动开发等 本人性格还没有修炼到淡定,所以下面可能屡有偏激狂妄之词,也请同仁多多海涵. 这篇博客是写给那些刚入.NET,同时喜欢.NET不准备转的人看的,搞好自己,相信自己!要转的自己转去吧!下面从头到尾都没有谁好说不好的!只是谈薪水问题! 咱们大多数人搞开发都是要赚钱养家的.我们都不说是为了中华软件而崛起的口号而编码,这样的口号我也喊不出来. 我们都是为了工资,为了赚钱养家.兴趣也是一部