如何学编程
蒋惠全,处于而立与不惑之间,故而虽立还常惑之;虽与比尔·盖茨同行,但仍然被生活压弯了腰,不老背驼;圈子内常虚捧之,纯粹是“浪得虚名”,好在有自知之明;喜静,偶有心得,闭门孤芳自赏;尊孔圣人,好为人师,业余级别,亦有嫡系弟子数百;草根凡人,成就不凡人生;信奉君子之交淡如水!
:jianghuiquan@126
序:
这是一个老话题,是一个老生常谈的话题。百度一下,到相关网页约195,000篇(2009.11.15),除了重复的文章外,足以知道多少人在问,多少人在谈,但是还有多少人迷茫?
关于这个问题自然是仁者见仁,智者见智。如果你在网上百度一下和编程相关内容,一定会看到:Visual Basic 、Delphi 、C、C++、VC++、汇编语言、Visual Foxpro 、SQL Server、Oracle、DB2、Sybase、Power Builder、Java、J2SE、JavaEE、JavaScript、PHP 、ASP (ASP.NET)、JSP 、ISAPI 、NSAPI 、CGI、VS2005/VS2008 等等(这些有语言、数据库或者开发工具)。
这些不是全部,如果你在网上问该怎么学呢?有让你从C语言开始学的,也有让你从Pascal开始学的,也有让你从VB开始学的,也有让你直接学习C#的,更有让直接学Java的……,网友的热心反而让你更是一
头雾水,很难知道谁对谁错。
实际上如果是学习一门入门语言,任何一个都够了,区别仅在于入门的难与易。但是倘若作为“就业”之本,仅有一门语言基础显然不够,欲知后事,请接着往下看:
一、学习目的与软件企业招人要求
(一)准备从事软件开发职业:无论你是一个在校大学生也好,还是一个已经在职但准备转行也罢。
1、首先,最好了解一下软件可以分为单机版、局域网版(C/S模式)、互联网版(B/S模式)。
单机版、局域网版:我们看到只能运行在一台机器上的一些客户关系管理、进销存软件、医院管理系统、QQ等。显著特点需要在电脑上装一个软件才能使用。可以使用语言有:VB、Delphi、PB、VC++等。
互联网版,也称WEB开发(B/S模式):网上银行、163与126、缴税等。只需要浏览器就可以了。可以使用语言有:VB Script(ASP)、C#(ASP.NET)、JAVA(JSP)、PHP等。
2、其次,你看一下软件企业都招什么样的人。
除了个别领域,不难看到目前主要分为两大阵营:.NET阵营和JavaEE阵营。两大体系都非常不错,不要看网上互相攻击的那些无聊文章。在后面我会谈到,这只是工具。
看看用人单位要求:这才是你真正的学习导向。
.NET体系
(1)计算机相关专业大专或本科学历,二年以上.NET开发工作经验;
(2)熟练C#语言、平台,vs2005,vs2008开发环境;熟练C/S,B/S结构软件,有相关项目经验。
(3)熟练运用SQL Server数据库设计与开发,熟悉存储过程及触发器,有过大批量数据处理与优化经验;
(4)精通ASP.NET、WebService进行相关的开发,有HTML、XML、JavaScript经验者优先;
(5)良好的团队开发意识,较强的沟通、学习能力,认真负责的工作态度。
.JavaEE体系
(1)计算机相关专业,大专或本科学历,具有1年以上相关工作经验;
(2)要求精通Java语言,精通JavaEE技术框架,熟悉SPRING、HIBERNATE、STRUTS、WEBWORK、MVC架构,熟悉Weblogic,jboss,Tomcat 等应用服务器,并可做应用部署及调优;
(3)对网络系统有相当的理解,熟悉Oracle/SQL-Server/Sybase 等数据库,可以熟练的使用PL/SQL语言进行存储过程和函数等的编写;
(4)熟悉UML建模技术优先,熟悉现代软件项目管理优先,英语技能较好者优先;
(5)具有编写需求说明书、设计说明书等软件开发相关文档的能力;
(6)思路清晰,工作规范,良好的执行能力、较强的团队协作精神和高度的责任心;
(7)2年以上软件开发工作经验。
.其他
诸如单片机、PLC等也很多。―――――――――――――――――――――――――――――
不难看出,近年来尽管学历一路飙升,但是软件企业却仍然定位是大专或者本科学历,但是都要求有项目经验(对此,你将来当了老板会更明白,你也不愿意替别人作嫁衣)。
选择一个体系作为你的目标很重要,无论是.NET还是JavaEE都行,千万不要什么都学,最终却什么都不懂。
另:你在网上也许看到很多这样的建议,学习C语言、C++ For Dos(面向对象的思想用DOS就足够了)、C For Windows、C++ For Windows(MFC),我是这样一路学过来的,更知道其中的艰辛。但是我更坚信按照这个建议,更多人的不到山顶就放弃了。并不是学美术的一定都要成为画家,做广告设计也是挺有意思的一件事。
自学制作网页网站
(二)纯粹的编程爱好者
这个我没有太多的发言权,只要你认为怎么适合你都行。
二、关于文化基础:
(一)数学:很多人都谈到要有高数、离散、线性等基础。但如果你做的只是一个网站后台、普通的管理系统,那么也许有高中的数学知识足够了。
(二)英语:入门学习编程不需要过四、六级,高中英语基础学习编程没有一点问题。但是还是希望英语你能够更上一层楼。道理很简单,原因有二: