2年时间从零基础到入门足够了。给你介绍下我的经历

背景:
本科双学位(2+2):软件工程+计算机科学(主要是:计算机图形(OpenGL和GLSL)+计算机信息可视化(CT以及核磁共振图像显示)+计算机图像处理(就是那些文字识别,指纹识别,红膜识别,做照片滤镜之类))

研究生:计算机科学-算法,语言和逻辑 (主要是:各种算法,编译器,计算机安全(加密和编码),人工智能)

本科前两年软件工程我学的很水。学了基础算法和C,C++以及Java。可能C和C++的水平和你一样。Java基本上搞不懂什么是对象。后两年出国来了瑞典,第一门课是OOP,说白了也是Java。但是那个老师超级好,而且课程安排的非常有水平。两个月中有3个lab(每个都是那种写很简单得东西,老师给一个大得框架,我们完善每一个小功能。)+ 一个project。最后这个project相当于是自己结合前面三个lab学到的知识写一个小游戏。这两个月以后,我才真正感觉到自己进入了一个入门程序员的水平。才真正开始了解什么是面向对象编程,以及它和C的区别。

后来兴趣产生了,而且有了C和Java的基础,所以后面的课虽然也很难,但是学起来很开心。

所以说如果你身边有一个能帮你编程的人,成为一个入门的程序员2-4个月的时间足够了。

初学编程有一个最大的障碍是搞不清楚逻辑(这里的逻辑不是 真and真 = 真,而是计算机运行的逻辑,他内部的原理是怎么搞得,为什么我打一行字它会执行这样的结果),这个是最困难的。这个困难导致刚开始学习编程很难产生兴趣。初学者往往过度的钻那几行代码,这样其实是很浪费时间的。更好的方法是给自己制定小目标,然后逐步实现。当有问题的时候再去研究代码,为什么不给自己想要的结果(这个时候你最需要一个人帮你解决困惑)。

初学者还有一个错误的观点,就是我自己要实现我需要的所有function。对于初学者,以及你所描述的你的需求,你根本不需要。因为网上的库(相当于别人写好的functions的包)已经够多了,你只用调用就可以了,写库那种事情是我们专业的人做的事,初学者太执着于这些只会让自己逐渐失去信心。所以你只要学会如何找到和使用这些库就足够了。这些库基本上比你自己写的要功能完善的多,bug也可能会少很多。

鉴于你谈到的需求,我推荐你学Matlab(我感觉这个最适合你的专业)。Matlab是我见过为数不多最简单的编程语言之一,结合你所想要实现的功能,多百度google相关的教学视频,一步一步的来,最后转化成你所需要的技能就可以了。

我学matlab用的时间也只有2个月(我还是觉得应该感谢当时那些课程的合理安排),两个月里用matlab做了各种模糊滤镜(高斯模糊,均值模糊等),文字识别,掌纹提取,虹膜提取等等。不要被这些名字吓到,其实你如果学会如何去实现这些东西后,你会发现简单的不得了。

所以你说的2年学会编程,用到你的专业并且达到入门程序员的水平完全不是问题。我们这里的课程安排都是2个月要结束一门课。基本上没学一门新语言的时间也就只有2个月。但是如果你要研究深入,2个月肯定是不够,但是2年如果只是钻一门语言研究,那达到一个中等程序员的水平足够了。

不过我的经验告诉我编程只是一个解决问题的工具,最后你要面临的问题会是多方面的。有的问题的出现不是单方面的,可能要考虑到各方面的因素。这就需要你知识的广度了,这有可能是算法问题,有可能是编译器的问题,有可能是网络服务器的问题等等,或者有的时候是逻辑问题(因为程序大了,某一部分代码的逻辑出错是常有的事情)。

最后,我不太同意codinglion的看法。我专业学习计算机,而且研究生主攻了算法和安全,但是不妨碍我喜欢搞交互设计,UI设计,iOS平台开发。或许之前那些还是和计算机有关,但是我对街舞,各种体育活动,还原魔方,文化,心理学,商业感兴趣。

我个人觉得自己如果有有兴趣的事情,就立马去学去做。有的时候你做不到未必是你没有这个天赋,而是你没有找到适合你自己的方法以及学习的内容还不够。

结论就是:如果方法适当,2年成为入门程序员完全没有问题。

需要帮助你可以私信我,或者给我发邮件:cocoacube@qq.com,我非常乐意分享我学习编程的历程和经验给需要帮助的人。文章来源于互联网:怎样用两年的时间从零基础变成一个入门的程序员?

发表评论