从当初的小白到现在深入软件编程,自己在学习中也慢慢总结了自己的学习心得,希望能与大家互相交流,互相学习。
+ - * /
if-else while for break return
int float struct class
array list map
function callback
熟练以上用法觉得能糊口了.似乎是戴克斯彻回答学生的话.原话更少2行.编程大多数的活,就是上边几个.记住,新手最重要的是保持热情!
0)前言:明确编程的本质
其实我们在小学时代解答应用题的时候,就已经逐步培养起将实际问题抽象建模、选择合适算法(例如加减乘除)进行求解的思维方式。当计算量巨大或者问题过于繁冗时,人工手算显然开始力不所能及,现代计算机便应运而生,自动化编程也成为了一种社会发展的必然趋势。
所以究起根本,编程即是将实际问题抽象为一种模型,再用一种高度逻辑化的语言,用特定的算法进行描述与实现。
1)必要的辅助工具与技能
学会使用git指令和github:
对于初学者,学会如何使用github将会提供了一个良好的开端。养成不同功能的模块开发写在不同的branch上的习惯,能够使你的项目逻辑清晰并易于修改。如果你把所有的代码全部放在一起,一旦你写了层层嵌套的塔型狗屎(这是你一定逃脱不了的命运……),无法连根撤回的bug堆将会直接击碎你还没开始就已结束的编程梦想。
选择一款合适的IDE:
挑选一款合适的IDE会使编程体验和效率大大提升。IDE即集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和用户图形界面。不同的IDE可以适配不同的工作应用场景,例如:PHP:PhpStorm;web开发:WebStorm;Java:Eclipse,Intellij IDEA;C、C++:Visual Studio ,Xcode;扩展性强的通用IDE:Sublime 2,Emacs,Vim;
vim不建议新手使用,因为如果不明白操作指令,进入vim模式后你只能茫然地敲下若干随机字符串,然后关机以求解脱。
2)明确学习的方向
计算机编程领域的分类众多纷杂,不同的划分标准下有不同的开发方向。例如:
按编程语言划分:JAVA,Python,C/C++, Javascript,Ruby,PHP,etc.;
按开发平台划分:Web,IOS,Android,etc.;
按岗位职责划分:前端,后端,运维,测试(黑白盒),数据分析,网络安全,etc.;
3)选择合适的学习方式与方法
若你是相关专业的在校学生,请务必:
1.学好所有相关的专业课程,无论它多么枯燥乏味。
你若不学计算机组成原理,你便不知道一个int型数据类型占4个字节是何物理意义,更不会透彻理解变量声明和变量定义的区别;你若不学数据结构,你便不知究竟该如何用最优的算法进行最优的深度优化。基础是重中之重,打好基础在工作后能让你甩开大部分同行一条街。
2.不要质疑老师让你阅读代码、抄写代码的意义。
我曾经对这样的学习方式一度十分嗤之以鼻,自负地认为简直不可理喻,但事实证明,你老师终归是你老师,这种做法一定有其存在的合理性。你能看懂的和你能写下的绝非是同种东西,一旦落笔便能知道,你很可能连静态局部变量和动态局部变量都没有彻底搞清。
合理充分地利用网络资源,多维度多渠道结合学习,切忌初始便买上几本厚厚的砖头书,进行毫无针对性的泛读而不进行任何实操练习。
我个人比较喜欢查阅英文的教材和视频资料,表述更为简洁,在编程领域里其实也更为语义化。有关MOOC在线的争议向来较大,不过我个人而言,我是会首选英文MOOC平台进行较为系统学习。面对一个新的领域,明晰的总体脉络走向和精准的切入点,能比单纯的自我学习大幅提高效率。