`
303178394
  • 浏览: 37517 次
  • 性别: 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,痛苦不堪。

吃饭,再见
分享到:
评论

相关推荐

    在我看来学习c#的方法与心得 希望大家能够借鉴

    在编程领域中,C#作为一种强大的面向对象的编程语言,被广泛应用于各种软件开发场景,包括但不限于Windows应用程序、Web应用、游戏开发(特别是Unity平台)、移动应用等。因此,掌握C#不仅能够帮助程序员解决实际...

    东芝EX40等老古董级PLC编程资料,英文版,含编程软件

    东芝EX40作为老一代产品,虽然现在看来技术较为陈旧,但在当时是工业自动化的重要工具,尤其在制造业、能源、交通等领域有着广泛的应用。 编程语言方面,东芝EX40支持梯形图(Ladder Diagram,LD)、指令表...

    Perl 语言编程 Perl 语言编程

    在《Perl 语言编程》这本书中,你将学习到Perl的基础知识,包括语法结构、变量类型、控制结构和函数等。Perl 的语法虽然在初学者看来可能较为复杂,但其强大的文本处理能力使得它在处理大量数据时显得尤为高效。书中...

    php4.0时尚编程百例

    书中的"时尚"一词可能意味着它包含了当时最新的编程实践和技术趋势,尽管PHP4.0在今天看来已经过时,但在其鼎盛时期,它为Web开发提供了强大且灵活的工具。 PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本...

    世界编程大赛 第一名

    4K程序设计挑战了常规认知,因为在大多数人看来,大型复杂的3D渲染往往需要庞大的代码量来实现。然而,这位冠军选手通过高效的算法、精巧的数据结构以及深入的编译器优化,成功地将代码压缩到了极致。这不仅展示了其...

    tc2.0 c语言编程

    它的集成开发环境(IDE)虽然在今天看来相对简陋,但在当时已经足够先进,提供了代码编辑、编译、链接以及调试等一系列功能。它的编译器支持ANSI C标准,允许用户编写标准C程序,并且有着良好的兼容性,能够在多种...

    学会Python! 带你玩编程.mp4

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

    成为编程高手的二十二条军规

    在学习编程的过程中,遵循正确的学习顺序至关重要。例如,建议先学习《数据结构》和《计算机组成原理》等基础知识,再逐渐过渡到具体的编程语言学习,如C++或Java等。 #### 7. C++与VC的区别 C++是一种面向对象的...

    Perl编程24学时教程

    在这个24小时的学习旅程中,你将探索Perl的强大功能,了解其在文本处理、系统管理、网络编程以及各种其他领域的应用。 Perl是一种灵活的、解释型的、动态的编程语言,自1987年首次发布以来,就因其强大的文本处理...

    经过测试win7可用的C语言编程工具Turbo C

    3. **内置集成开发环境(IDE)**:虽然现在看来它的IDE功能相对简单,但在当时,能够在一个程序中完成编写、编译和运行代码是非常先进的。 4. **良好的兼容性**:Turbo C编译的程序往往能在多种DOS环境下正常运行,...

    人形机器人学习心得.doc

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

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

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

    iPhone软件开发编程语言ObjectiveC学习资料借鉴.pdf

    在初学者看来,Objective-C的语法可能显得复杂,特别是它的消息传递机制和类定义方式,但理解了其核心概念后,学习过程就会变得相对平滑。 XCode是苹果提供的集成开发环境(IDE),它包含了编写、测试和调试...

    Python核心编程(中文第二版)

    David Mertz甚至指出,在他看来,这本书超过了《Learning Python》、《Programming Python》和《The Quick Python Book》等知名著作。 4. **权威性高**:Richard Ozaki提到,该书已成为Python学习领域的标准入门文本...

    C#程序设计丛书和编程系列

    尽管它并未直接关联到C#编程,但“教科书”一词提示我们讨论的内容可能涉及教学资源,可能是指在学习C#的过程中,会涉及到不同领域的知识,比如数据库管理,这在软件开发中是至关重要的。而“会计师”可能意味着讨论...

    Fortran77和90、95编程入门

    尽管现在看来它的语法较为古老,但其对数组处理的强大支持和简洁的语句结构使其在数值计算领域依然有一席之地。在Fortran77中,学习者将接触到基本的数据类型,如实数、整数和字符,以及变量声明、赋值语句、算术...

    97年世界编程大赛一等奖作品

    标题中的“97年世界编程大赛一等奖作品”指的是在1997年度举行的一项全球性的编程竞赛中获得最高荣誉的作品。...尽管现在看来,这样的技术可能已经过时,但它在当时无疑是一个技术上的突破,值得我们去研究和学习。

Global site tag (gtag.js) - Google Analytics