职场中,我们总是听到这样的抱怨:课程总是偏向理论知识,看不出有什么实际的作用,还不如从工作中的实际出发。
面对有志于程序员这个职业的人群,专业人士给出以下建议:
不乱追新:新书、新技术、新知识,因为基础的东西是经过长时间的积累,在未来十年至少是通用的。
反观历史:分析,并归纳、总结出过去线上技术的发展,做到知古通今
消除惰性:不管例子多简单,都要动手手敲一遍,以免忽略其中的细节。
一、入门阶段
1、 学习一门脚本语言,例如 Python、Ruby,可以摆脱你对底层语言的恐惧感,并且开发出有用的小程序。
处理文本文件,或者 csv (关键词 python csv、python open、 python sys) 读一个本地文件,逐行处理(例如 word count,或者处理 log);
遍历本地文件系统 (sys、 os,、path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果;
跟数据库打交道 (python sqlite),写一个小脚本统计数据库里条目数量;
学会用各种 print 之类简单粗暴的方式进行调试;
学会用 Google (phrase、domain、use reader to follow tech blogs)。
2、 用熟一种程序员的编辑器 (不是 IDE) 和一些基本工具,这样可以让你在查看、修改代码、配置文章、日志会更加高效。
Vim 、 Emacs、 Notepad++,学会如何配置代码补全,外观,外部命令等;
Source Insight (或 ctag)。
3、 熟悉 Unix、Linux Shell 和常见的命令行,你会发现Unix/Linux 比 Windows 简单并且高效。
如果你用 windows,至少学会用虚拟机里的 linux、 vmware player 是免费的,装个 Ubuntu 吧;
一定要少用少用图形界面;
学会使用 man 来查看帮助;
文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
学会使用一些文本操作命令 sed/awk/grep/tail/less/more …
学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd…
了解 /etc 目录下的各种配置文章,学会查看 /var/log 下的系统日志,以及 /proc 下的系统运行信息;
了解正则表达式,使用正则表达式来查找文件。
4、 学习 Web 基础 (HTML/CSS/JS) + 服务器端技术 (LAMP)
未来必然是 Web 的世界,学习 WEB 基础的最佳网站是 W3School。
学习 HTML 基本语法;
学习 CSS 如何选中 HTML 元素并应用一些基本样式(关键词:box model);
学会用 Firefox + Firebug 或 chrome 查看你觉得很炫的网页结构,并动态修改;
学习使用 Javascript 操纵 HTML 元件。理解 DOM 和动态网页(http://oreilly.com/catalog/9780596527402 ) 网上有免费的章节,足够用了。或参看 DOM ;
学会用 Firefox + Firebug 或 chrome 调试 Javascript 代码(设置断点,查看变量,性能,控制台等);
在一台机器上配置 Apache 或 Nginx;
学习 PHP,让后台 PHP 和前台 HTML 进行数据交互&#x