`
303178394
  • 浏览: 36358 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

在我看来如何学习编程

 
阅读更多
最近都在logdown写博文,周末无聊,就把博文也copy到iteye了。之所以去logdown就是怕被喷,周末鼓足勇气来被喷一下。
前些日子,部门来了一个暑假实习生,和大多数暑假实习生一样,很难让他们可以帮忙干活,但是,这暑假实习生你是真的很难安排他干活,因为公司大多数项目都是用java写的,然后他竟然是一名伟大的c#程序员。wtf!那为什么会安排来实习,得知,我天朝关系党威武。丢失了一个使唤领导亲戚干活的机会让我很懊恼,让我绞尽脑汁的想该怎么才能让他学好一门新的编程语言让他干活!
 
  先来点题外话,也让这篇博文更加的轻松、诙谐、人文、社会主义,砖头灰过来,社会你妹主义啊。
 
  从大学开始学习这个行业开始7年了,之间学了挺多编程语言的,前4年主攻C,后来接触java多了以后发现,C语言这种面向过程的语言太老套了,面向对象的风格实在是太特么的美了,然后大四即将毕业的时候开始狂学java,那个9月到11月,每天早上6点开始,到晚上睡觉,都只有java,还因为自己动手做几个项目,有一个星期一周都没睡几个小时,标准程序猿、码农、码畜。
 
  坚持就是胜利,我就用这个学了2个月的语言,就在11月成为计算机学院07届第二个找到工作的,其实当时有3个offer在手,当时的选择就是银行、手机、造价工程。最终走亲戚问朋友找学长得知,后来我去的那家公司很适合作为毕业生的第一站。在我现在看来,也是相当明智的选择(当时选了银行的同学,现在已经拿了9k6的工资)。这那里我学到了原来用敏捷开发原来可以这么开心的工作,每天都充满成就感、责任感;学习业务知识对我们这行是多么的重要(有个数学系的朋友给我时候,你们程序员有什么了不起的,我也能写个小工具我自己用啊。我只回答他说,那你能写个我需要的软件给我用吗?他立马说那不行。我说,那我可以做出你想要的东西。);通过结对设计、结对编程学到了很多设计理念、设计模式、设计原则、很多在java来说很底层的东西(我觉得干我们这行就是得想,拿到一个东西就得想,这尼玛是干嘛的,底层是如何设计的,他真的给我们带来了什么吗。而设计模式和设计原则);学到了阿米马经营模式是如何操作的;学到了稻盛和夫的臭金钱哲学(原谅我,我就是很喜欢嘲讽我喜欢的东西);最关键是跟当时公司的设计师学到了程序员做事情的法,至少我现在还认为这样做是最好的。
 
  说了这么多废话,我只是想说,如果你准备未来投身到IT江湖从事编码这份非常有前途的职业(谁说没前途我和谁急,在这个信息化的时代,有什么笔信息技术更牛掰的,如果你觉得没前途,我觉得是还没入门,因为我一年前也真觉得没前途),学习一门编程语言是不够的,没有哪个大虾因为他只会一门武功就称霸武林,那些乔峰、张无忌、郭靖这些男猪脚哪个没有好几套武功,只是他们都有一门特别厉害的。
 
  不关是编程语言,要学的东西还非常多,比如操作系统、算法、编译原理、数据库、数据结构、计算机网络等等引擎和网络架构balabala的一堆。特别是当我熟练掌握了一门技术之后,才发现,这门技术早就已经日落西山了(java在2000-2007年的时候的确是工资最高的变成语言,现在最贵的语言当然是objective-c)。现在我觉得学变成就一定要学习一门元编程语言。高手如果笑而不语,我这入门生也就只能给门外汗忽悠忽悠。元编程就是,你不会去问谷歌啊。砖头立马飞过来。下面是我从维基搬来的东西(俺们码农就爱搬运)。
  > 元编程是指某类计算机程序的编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的数据,或者在运行时完成部分本应在编译时完成的工作。多数情况下,与手工编写全部代码相比,程序员可以获得更高的工作效率, 或者给与程序更大的灵活度去处理新的情形而无需重新编译。
 
  复制这些,有的人可能更加晕菜了,我要的就是这种效果!我自己的理解描述就是,元编程就是能操作代码的代码,简单说,就是刘翔已经在跑道上起跑了,这时候他落后萝卜丝3个身位,但是我编码时候设定,当刘翔落后的时候,就改变他的行为,这时候,他能飞了,然后飞的超过了萝卜丝勇获第二,哦也!
 
  说了这么多,还没说到如何学编程,肯定有人要飞砖头砸我了。我自己也肚子饿了,周末也不能9点吃饭的吧。那赶紧草草结尾下,哈哈哈哈。
  1. 要有自己的想法
  学习的时候,脑袋中要能清楚的知道自己为什么学这门语言,要学到什么程度,然后才是要怎么去学。就像我学scala,是因为我发现函数式编程很有意思,未来可能会成为一种趋势,所以为了跟上时代的步伐,我就开始学了。那要学到什么程度,当然是能做一个twitter那样的东西出来。那怎么去学,接下来几点慢慢去说。
2. 要有教材
刚毕业的时候,我很喜欢看学习的视频,现在,我更喜欢拿一本书去学习。首先视频太慢了,学习一个看书只要5分钟的事情,视频偏偏要半个小时。然后,看视频一直看别人动手,没有通过自己的尝试去得到体验的记忆往往不深刻,别说你看了视频也会去动手,你已经看别人做了一次了,可能的问题都知道了,印象一定不深刻了。教材当然要选择最经典,最牛掰的,这个我觉得最好是找身边的大牛们讨教。其实我也经常苦于不知道哪本书最好。然后根据教材掌握基础运行环境、数据类型、表达式、函数、流程控制、类、方法、bilibala;
3. 学会googel
这个就不说了,学习的过程中肯定有很多问题,但是要碰到别人都没碰到过的基本不可能。去问谷歌吧,别问度娘,至少我在学jbpm4和scala的时候就吃了好多度娘的亏了;
4. 先别用IDE
个人觉得学一门语言最好别先用IDE,现在IDE太智能了,会导致离开IDE什么都不会。我敢说让很多JAVA程序员离开IDE,HELLOWORLD都要写很久。先用文本编辑器去做,比如VIM、Emacs ,最好是直接用shell,不会还要我解释什么是shell吧,好吧,解释完让我去吃早饭吧。
  shell就是个外壳,你不会直接告诉CPU要做什么,你要先告诉shell,他再去告诉cpu要执行什么指令。最经典的就是linux的Terminal,像我在学习的scala也有shell功能。因为这样能敲一行指令立马反馈,所见即所得。
5. 最好能找到一个老师,学会去问好的问题,我学scala就苦于身边没人在用,只能天天google,痛苦不堪。

吃饭,再见
分享到:
评论

相关推荐

    学会Python! 带你玩编程.mp4

    就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是其非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过...

    人形机器人学习心得.doc

    因 此,在我看来编程控制的主要对象是伺服电机的活动。在本次课程中我通过HTH3这个软 件来进行程序的编写,但由于我是初次学习,对于编程所用的语言不甚了解,因此我只 能通过HTH3软件用其他人已经编好的程序来单步...

    想学习编程技能?应该这样开始

    去年九月我写了一篇挺受欢迎的博文,叫 《想学Rails? 这样开始》。 许多读者看完文章后,当面或用Email向我提了...在我看来,这些人都不太可能真的整出个像样的东西来。  1. “只用晚上、的业余时间学习”很不靠谱

    蔡氏电路matlab仿真代码-Machine-Learning-Dojo:我学习和训练机器学习技能的道场

    通过这个项目,我有机会“刷新”我的机器学习知识并练习我的Python编程技能,特别是提高了我在python中使用库进行科学计算的经验,例如scikit-learn,numpy,scipy,matplotlib-非常方便的库在我看来,python可以...

    中文注释内核源码,适用于嵌入式linux软件工程师,中文注释只是部分,中文注释将保持更新,更新进度取决于我的学习进度

    透过阅读Linux内核代码的方式,我们学习到的不光是内核相关的知识,在我看来更具价值的是学习和体会它们的编程技巧以及对计算机的理解。 内核源码的分析并非“高不可攀”。内核源码分析的难度不在于源码本身,而在于...

    reactive-programming:玩转React式编程

    无数文章和博客文章宣传使用 promise 作为异步回调地狱的治疗方法,但这些框架生成的代码在我看来并不干净或易于理解:它仍然有回调,而且很多。 React式编程允许通过使用占位符(承诺)来处理未来值的顺序编程...

    软件开发实习报告.doc

    在这三个多月的时间中,我学习了新的编程语言C#,面向对象编程以前我只用过V B,ASP,VB.NET,前面两种还不是完全面向对象的语言,对VB.NET的编程认识也只是停留 在VB的编程思想上。现在我对C#有了基本的认识,也...

    PERL语言编程

    因为 Perl 几乎可以在任何地方运行,所以 Perl 可以说是当今最具有移植性的编程环境。要想写可移植的 C/C++ 程序,你得在程序里加上一大堆 #ifdef 标签来区分不同的系统。要想写可移植的 Java 程序,你必须理解每种...

    unknown:未知的编程语言

    在我看来,C非常接近,但还远远不够。 编程语言应易于学习,并应遵循良好的编码习惯。 最重要的是,它应该易于阅读。 这是这种语言的主要意图。 我不希望除我以外的任何人都会使用它; 因此这个名字不详。

    VFP中实现选择排序

    我终于开始明白,如果在我所从事的这个没有任何保障的“挨踢”行业继续做下去,过几年我会成为40、50人员,那时恐怕连愿意为我交社保、医保的地方都找不到了。所以现在我进入了企业,不再是教师,因为这需要很大的...

    android调用matlab代码-Programming-Roadmap-with-Resources:这是为那些想要指导他们在编程中应该做

    这里有几点(在我看来): C 很容易学习,但很多人认为它是一种过时的语言。 我们的下一个选择是 C++。 但是在学习 C++ 之前,我强烈建议你先学习 C,然后跳过 C++,因为它可以让你更好地理解 C++。 但是,这不是...

    leetcode答案-man-computerscience:我发现的与计算机科学和编程相关的最佳文章和视频

    这将需要额外的工作(除了听课和解决作业),但在我看来,这确实是值得的。 一般来说,你不会因为聪明而在编程或学术界取得好成绩,但是 . 我鼓励阅读的文章 故事 了解一些背景信息总是好的。 以下是我自己喜欢的...

    TurkishProgrammingLanguage:特殊设计的土耳其编程语言的口译员

    土耳其语编程语言特殊设计的土耳其编程语言的口译员解释的土耳其语编程语言1简介系统目的本项目的目的是设计和实现一种解释型(源语言将在运行时逐行处理。)土耳其语编程语言,将在教学中或编程时使用。 在该系统中...

    Python web接口开发与测试(电子版)

    从我个人学习 Python 的经历,以及帮助别人解答 Python 问题的经历看来,对于初学 Python 的人来说,遇到的大多问题并不是 Python 的语法,如果读者稍有编程语言基础,那么将会很容易就能学会 Python 的语法,而且...

    编程游戏腹泻生物-myrover.rar

    % 在你看来腹泻生物这些与你毫无关系的生活,也许真的是糟透了. % 但是很不幸,由于穿越大流行,当你今天早上睁开眼的时候, % 你发现自己竟然穿越到了腹泻星球上,变成了一只腹泻生物!悲剧! % 从现在开始,为了生存你...

    Python socket网络编程TCP/IP服务器与客户端通信

    python,前段时间买了两本书《python 编程从入门到实践》《Python 核心编程第三版》,第一本书主要讲的是一些基本语法和一些基本的使用方法,而第二本则深入很多,自己看来也是一知半解,刚好看到了这部分网络编程,...

    11月编程语言排行榜 Python逆袭C#上升到第4

    而今天看来,似乎只有 Python 的发展很强势,其他脚本语言都在逐渐走出前 20 名,或排名趋于下滑。 在前 20 名的排行中,可以看出 Python 已经超越 C#,上升至第 4 的位置。无论在哪个榜单中 Python 都是保持着...

    HonkeyPong:自制 NES Pong 克隆,旨在作为 NES 游戏编程课程

    在我看来,对于大多数开发人员来说,最大的入门障碍是学习汇编语言的难度。 在此之后,下一个障碍似乎是所有教程中关于使用什么汇编程序的看似相互冲突的观点。 通常,NES 开发教程似乎围绕着三种不同的汇编器:...

    《锋利的jQuery》(高清扫描版附源码)

    不过从我的经验看来,事实并不是这样,笔者正是由于jQuery,才对JavaScript这门语言感兴趣,直至爱上JavaScript。兴趣是最好的老师。现在我时不时会想:这个程序利用jQuery是这么实现,那么利用JavaScript怎么来实现...

    Distribute Systems

    在我看来,分布式编程的很大一部分是处理分布式带来的两个影响: 信息以光速传输 独立的事物会独立地发生故障* 换句话说,分布式编程的核心是处理距离和拥有多个事物(当然!)。这些约束定义了可能的系统设计空间,...

Global site tag (gtag.js) - Google Analytics