写作背景
这两天对于如何学习编程的认识有了很大的改变,对于人生规划也发生了变化。
如何学习编程
编程能力可分为两种
内功包括
编程通用性的知识:
算法
编译原理
数据结构
设计模式
重构
性能优化
面向对象编程
数据库
抽象化语言内部的共性:
字符串处理
正则表达式
变量与常量
控制语句if-else
循环
函数/方法
类/对象/接口
递归
哈希表
数组还有工具类的内功:
构建工具 (通用知识)
单元测试 (通用知识)
依赖包管理 (通用知识)
MVC 框架 (通用知识)
代码质量检测 (通用知识)
JSON 和 XML 设计 (通用知识)
代码控制 (通用知识)IT外的相关知识:
数学(离散数学,几何学)
物理
图形处理
图形/UI设计外功包括
各种编程语言包括C++,javascript,java,php,C#,perl,python等
各种编程环境,.NET, WAMP/LAMP,node.js 等
各种IDE和编辑器,notepad++,vim,Visual Studio,Sublime等
各种快捷键,
各种包依赖管理器,npm,composer,Nuget
各种版本管理器:git,svn,cvs
各种单元测试工具
各种构建工具
各种MVC框架
来源:知乎
以前的想法
以为学编程就是学一门编程语言,根本不知道原来需要掌握那么多的知识。
走过的弯路
从C语言到JAVA,我都非常的浮躁,因为错误的观念,导致我总急着做出一些作品来。而没有好好打基础,万幸的是,后来觉得数据结构重要,不得不去好好学C语言。
现状
C语言学了大半,剩下的等老师讲。数据结构学到堆栈部分,但仍然对如何学习数据结构一头雾水,不知道怎么才能达到要求。
暂时的想法
先把数据结构学完,再把《计算机科学导论》看一遍(要做笔记),然后再去看其他该看的书,对具体编程语言的学习可能会很慢。
人生规划
技术人的未来在哪里
这是stormzhang的一篇文章,对我的思维的确有所启发。
不能一辈子光靠coding谋生
技术发展迅速,一门语言流行时间不确定,一旦技术过时,技术人很可能面临失业,尽管他曾经工作待遇优厚。
不要拒绝新技术
这个行业不需要过时的技术。
培养多维度的能力
极少有光靠编程成功的人,那些出名的技术人大多有其他与技术无关方面的优势,比如推广自己的产品等等,所以说非常有必要培养多维度的能力。
培养可持续的技能
一门语言过时,那么对这门语言的经验也就基本没用了。为了不至于有一天优势全无,培养自己可持续的技能是个不错的选择。可持续指的是越做越好的事情,比如写作,以及其他不会过时的技能。
总结
今时不同往日,整个行业的水平提升了,混口饭吃也不再那么容易了。大公司不缺有技术的人,幻想有技术就有工作不太现实了。为了毕业能找到份工作,剩下的大学时光,我得修炼好内功,同时培养自己其他的能力,争取大学不留遗憾。