我自己的一个令人警醒的学习代码的故事

-- 一个正常理智的人是如何抓狂的

     我本来是个穿正装坐办公室的人。但当我有了个模糊的创业灵感的时候,我决定自己学习编程。
     我听说过一个家伙吹牛说使用一门叫做Ruby的语言是如何方便快捷令自己的工作流程自动化的。我想,那就学Ruby吧。于是我回到家开始google。15秒钟过后,我开始研究Ruby的教程了。
     一周之后,我第一次参加黑客聚会。每个人都在讨论向Scala,Clojure和Go这样的编程语言。有很多需要学习的东西。我借了三本O'relly出版的专业书籍,每本读了50页。
     

     我的一个朋友告诉我应该学会Emacs并给了我一些配置文件。我花了几个小时学习基本的Lisp语言之后可以进行简单基本的配置了。
     之后一个伙计知道我使用Emacs就问我,为什么用Emacs呢?不知道Vim更好一些么?哦,Vim...之后我开始记忆Vim众多的快按键。
     那时候我以为,打字速度越快编码速度越快。所以我把键盘布局调成了程序猿Dvorak模式。心里想,这才是对程序猿高效的键盘布局呀。
     那时候我把Linux安装在了我的上网本上,我可以每分钟输入10个单词,同时我自学了Python。
     七个月对代码学习加上参加了一些编程活动之后,我找到了我第一份软件工程师的工作。
     和CTO面试的时候,我告诉他我学到的复杂的配置。CTO礼貌的对我点头。之后我又把我所有知道的东西向他展示了出来。他把我拉进单独面试间,告诉我。做一件事情有很多种方法,但是只有几个方法管用。然后递给我一个笨重的MacBook,把我拉进了开发间。
     四年前,这家公司决定使用Ruby On Rails来开发他们的产品。他们对于决定聚精会神的执行着。现在来看之前的一些代码仍然是完整的。所有工程师使用MacBook,环境类似他们生产上使用的Ubuntu Server。这里没有Vim和Emacs的纷争,所有人使用RubyMine,一个功能强大的集成开发平台,有着很好用的默认配置。这就意味着,所有工程师都可以肩并肩的在一起开发。不用纠结其他同事的开发环境。这个决定解决了两个决定协作的程序猿之间大多数的问题。
     即使我不会使用Ruby On Rails,公司也没说什么。因为我很专注的学习Python和Django并赢得了一次黑客马拉松,公司认为我可以最终学会Rails。
      头几个星期很痛苦,不仅仅因为我在学习一门新语言,一个新的框架和一个新的编程平台。我感到很痛苦因为我需要开启一段很荒谬的自虐之路来学习编码。
     我自己在图书馆,咖啡厅花费了大量的时间盲目的通过命令行安装各种工具,调试Linux驱动问题。我满脑子想的都是命令行缺少参数和各种新工具的尝试。我涉及了网上每一门课程,进行了无数的在线课程.在没看指导教程通过网络学习,我经过五个月才找到了一些门路。这给我的印象就是,编程是一个徒劳的挣扎。这段痛苦的经历让我认为我遇到的那些程序猿都是编程经验丰富的同时对别人忽略学习编程的痛苦。

这张照片是我在我之前工作最后一天拍摄的。我起了个大早,穿戴整齐,重新明确了一下我的任务:开始学习代码。我的Facebook签名是:”我的新办公室-我把自己所在这里从早上八点到晚上六点。期间只有上厕所修一下“。我试着让自己谈吐和程序猿一样。现在我每天都这样,没有讽刺的意思...

     而我的同事恰恰相反。他们基本不需要考虑语法错误,因为IDE就可以先发现。我同事的MacBook工作的很好。如果他们遇到一个错误,只需要几分钟时间,他们通过google就可以解决。他们简单的互相沟通,帮助彼此调试程序。他们经常来到对方的桌子旁,开始结对编程。这里没有自负和精英主义。没有人认为编程是一种折磨。他们之间就像友好的具有一定编程经验的成年人之间的愉快谈话。
     团队坚持使用他们自己的工具。除了黑客马拉松上体验新技术比如Angular.js这种新技术的激情,大多数时间他们都专注于现有的技术。他们对于开发环境改进和修改很保守。
     你在ThoughtBot也会看到同样的情况。每个人都坚持使用小而有效地工具链。(比如Rails,Vim,Postgres 和Redis).通过专注于几个关键的工具,他们的工程师很快就变成了专家并可以轻松的进行沟通。
     所以真正的问题是,如果高产能的软件工程团队通过专注于一组工具来相互协作,人们刚开始接触编码是不是也需要这么做呢。线上的编程教学和编程培训看起来是这么做的。
     但是作为一个个人,面对这么多选择,确定学习什么真的很困难。我知道因为我当时就像在十字路口的一条狗,一会去追一辆汽车,一会有去追另一辆。一个好的程序猿的技巧应该可以被描述为T字形,对很多领域一知半解,对某一门技术十分精通。而经过几个月的压力和努力工作,我被塑造成了一个粗线形。

     按照我的方法进行学习的人,我见过很多人都是这么开始的,最后都很失落,放弃了他们成为一个程序猿的梦想。我不想这样的事情再发生在你们身上。

     你需要专注:
          出了远期的麻烦,一下是我看到新手程序猿最常见的大问题:

  • 频繁的更换语言和框架,或者自以为是的认为自己可以成为所有语言的专家。
  • 自定义他们自己的开发环境,尽管有成熟方便的工具,他们宁愿使用比较生疏的工具
  • 试着学习Docker和Famo.us类似的技术,因为新技术令人激动人心。尽管他们还没有很好地掌握基础知识。
     如果我必须用一个词总结我的建议的话那就是:专注。

     我给你提的问题是:你对你的学习编程的计划可以用专注来描述么?

     如果你感到你的计划是专注的,你应该现在马上关掉网页回去学习,因为我不想说太多打扰到你。

     如果你还没有那么的专注于你的学习计划的话,你可以试试以下几招。但是会法非你几分钟的时间来做出艰难的决定。等等!别走......

     哦太好了~你还在。好的,这些是你需要做得决定:

     1.选择一个你感兴趣的软件开发行业作为你的职业:网站开发,移动端开发,游戏开发或者嵌入式开发。我推荐网站开发,因为它更灵活。这方面有很多的工作机会和学习资源。如果你的兴趣不在网站开发这一块,先把我的博客放一放,去google一下xxx开发,然后全力以赴~
     2.选择一种语言:JavaScript,Ruby或者Python。每种语言都有强项。每种都有相应的工具来创建网站应用。(分别是:Node.js,Rails,还有Django)。除非你已经有了决定,我是推荐JavaScript,因为它更流行一些。
     3.选择一个在线学习平台。一下是几个广泛应用的平台: FreeCodeCamp.com  或者  NodeSchool.io  上学习JavaScript;   TheOdinProject.com  或者  TeamTreehouse.com  来学习Ruby;  Udacity.com  学习 Python.相信设计课程的老师们,你需要做的就是坚持下来,按照顺序完成任务。不跳过任何章节。
     4.选择一下:买个新的或者二手的MacBook,或者在你现有的计算机上安装Ubuntu。如果需要其他的工具,通过课程中的推荐来安装就可以了。
     
     一旦你做出了这些选择,前面的路就很简单了。对于新鲜的工具带来的神秘感保持一颗清醒的头脑。保持住每天时按量完成课程,即使课程只有半个小时。相信你今天做的决定,铭记:只要足够耐心,任何有志向的人都可以成为优秀的程序猿,当然也包括你!


原文地址:http://blog.freecodecamp.com/2014/11/a-cautionary-tale-of-learning-to-code.html
     
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园信息化系统解决方案旨在通过先进的信息技术,实现教育的全方位创新和优质资源的普及共享。该方案依据国家和地方政策背景,如教育部《教育信息化“十三五”规划》和《教育信息化十年发展规划》,以信息技术的革命性影响为指导,推进教育信息化建设,实现教育思想和方法的创新。 技术发展为智慧校园建设提供了强有力的支撑。方案涵盖了互连互通、优质资源共享、宽带网络、移动APP、电子书包、电子教学白板、3D打印、VR虚拟教学等技术应用,以及大数据和云计算技术,提升了教学数据记录和分析水平。此外,教育资源公共服务平台、教育管理公共服务平台等平台建设,进一步提高了教学、管控的效率。 智慧校园系统由智慧教学、智慧管控和智慧办公三大部分组成,各自具有丰富的应用场景。智慧教学包括微课、公开课、精品课等教学资源的整合和共享,支持在线编辑、录播资源、教学分析等功能。智慧管控则通过平安校园、可视对讲、紧急求助、视频监控等手段,保障校园安全。智慧办公则利用远程视讯、无纸化会议、数字会议等技术,提高行政效率和会议质量。 教育录播系统作为智慧校园的重要组成部分,提供了一套满足学校和教育局需求的解决方案。它包括标准课室、微格课室、精品课室等,通过自动五机位方案、高保真音频采集、一键式录课等功能,实现了优质教学资源的录制和共享。此外,录播系统还包括互动教学、录播班班通、教育中控、校园广播等应用,促进了教育资源的均衡化发展。 智慧办公的另一重点是无纸化会议和数字会议系统的建设,它们通过高效的文件管理、会议文件保密处理、本地会议的音频传输和摄像跟踪等功能,实现了会议的高效化和集中管控。这些系统不仅提高了会议的效率和质量,还通过一键管控、无线管控等设计,简化了操作流程,使得会议更加便捷和环保。 总之,智慧校园信息化系统解决方案通过整合先进的信息技术和教学资源,不仅提升了教育质量和管理效率,还为实现教育均衡化和资源共享提供了有力支持,推动了教育现代化的进程。
智慧校园信息化系统解决方案旨在通过先进的信息技术,实现教育的全方位创新和优质资源的普及共享。该方案依据国家和地方政策背景,如教育部《教育信息化“十三五”规划》和《教育信息化十年发展规划》,以信息技术的革命性影响为指导,推进教育信息化建设,实现教育思想和方法的创新。 技术发展为智慧校园建设提供了强有力的支撑。方案涵盖了互连互通、优质资源共享、宽带网络、移动APP、电子书包、电子教学白板、3D打印、VR虚拟教学等技术应用,以及大数据和云计算技术,提升了教学数据记录和分析水平。此外,教育资源公共服务平台、教育管理公共服务平台等平台建设,进一步提高了教学、管控的效率。 智慧校园系统由智慧教学、智慧管控和智慧办公三大部分组成,各自具有丰富的应用场景。智慧教学包括微课、公开课、精品课等教学资源的整合和共享,支持在线编辑、录播资源、教学分析等功能。智慧管控则通过平安校园、可视对讲、紧急求助、视频监控等手段,保障校园安全。智慧办公则利用远程视讯、无纸化会议、数字会议等技术,提高行政效率和会议质量。 教育录播系统作为智慧校园的重要组成部分,提供了一套满足学校和教育局需求的解决方案。它包括标准课室、微格课室、精品课室等,通过自动五机位方案、高保真音频采集、一键式录课等功能,实现了优质教学资源的录制和共享。此外,录播系统还包括互动教学、录播班班通、教育中控、校园广播等应用,促进了教育资源的均衡化发展。 智慧办公的另一重点是无纸化会议和数字会议系统的建设,它们通过高效的文件管理、会议文件保密处理、本地会议的音频传输和摄像跟踪等功能,实现了会议的高效化和集中管控。这些系统不仅提高了会议的效率和质量,还通过一键管控、无线管控等设计,简化了操作流程,使得会议更加便捷和环保。 总之,智慧校园信息化系统解决方案通过整合先进的信息技术和教学资源,不仅提升了教育质量和管理效率,还为实现教育均衡化和资源共享提供了有力支持,推动了教育现代化的进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值