如何自学成为一名程序员?
目前,网络上有无数的计算机资源。很多都是基础到精通的视频教程。通过视频讲解。让你了解重点知识。可以找一套适合自己的视频。然后读它是基本的。
以下是一些可以在线学习的好网站:海量开放在线课程、极客学院、Rupeng.com、传智播客、网易公开课等。记笔记。看视频的时候,一定要做笔记。
截图视频中的关键部分,用文字说明。我形成了自己的笔记。这些笔记对你很重要。通过做笔记,就不需要再看视频了。复习的时候查一下笔记就够了,大大节省了时间。
这里有一个做笔记的好软件:CherryTree练习视频中讲解的代码。我觉得你至少需要自己写三遍。写代码的时候,我用了上面写的笔记。通过看笔记截图,可以慢慢摸索,自己写代码。当然,如果练习到一定程度,就需要适当的做一个项目。巩固你的知识。
程序员的基本技能
1,熟练的开发工具
作为程序员,掌握至少两三种开发工具是程序员的基础。其中,C/C++和JAVA是最值得推荐的开发工具。C/C++以其高效率和高灵活性成为开发工具中的利器。很多系统级软件还是用C/C++写的。
JAVA的跨平台性和与WEB的良好结合是其优势,而JAVA,其相关技术集JAVAOne,很有可能成为未来的主流开发工具之一。
其次,最好掌握一个简单的可视化开发工具,比如VB、PowerBuilder、Delphi、CBuilder,降低了开发难度,可以强化程序员的对象模型概念。此外,还需要掌握基本的脚本语言,如shell、perl等。,并且至少理解这些脚本代码。
2、熟悉数据库
为什么数据库如此重要?作为程序员,自然有自己的道理:很多应用都是以数据库数据为中心的,数据库产品也很多,其中关系型数据库仍然是主流形式,所以程序员至少要掌握一到两个数据库,要非常清楚关系型数据库的关键元素,熟练掌握SQL的基本语法。
虽然很多数据库产品都提供了可视化的数据库管理工具,但是SQL是基础,是常用的数据库操作方法。如果没有机会接触商业数据库系统,使用免费的数据库产品是一个不错的选择,比如mySQL和Postgres。
3、了解操作系统
目前主流的操作系统有Windows,Linux/Unix。熟练使用这些操作系统是必要的,但光有这些是不够的。要成为真正的编程大师,你需要了解操作系统,它的内存管理机制,进程/线程调度,信号,内核对象,系统调用,协议栈实现等等。
Linux作为开发源代码的操作系统,是一个很好的学习平台。Linux几乎拥有现代操作系统的所有特征。虽然关于Windows系统内核实现机制的信息很少,但是通过互联网还是可以获得很多信息。了解网络协议TCP/IP。
在互联网普及的今天,如果你还没有掌握互联网的支撑协议TCP/IP协议栈,那你需要赶紧补上这一课。
网络技术改变了软件的运行模式,从最早的客户机/服务器结构,到今天的WEBServices,再到未来的网格计算,都离不开基于TCP/IP协议栈的网络协议支持。深入掌握TCP/IP协议是非常必要的。
至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理以及三次握手机制。
4.理解DCOM/CORBA/XML/WEBServices的重要性。
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一。DCOM/CORBA是两种主流分布式计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,CORBA是OMG支持的规范。
XML/WebServices的重要性不言而喻。XML因其结构化的表示方式和超强的表达能力,在互联网上被称为“世界语”,是分布式计算的基石之一。
5.不要把软件工程从CMM中分离出来。
在大型软件系统的开发中,工程开发控制取代了个人英雄主义,成为软件系统成功的保证。编程高手不一定是优秀的程序员。一个优秀的程序员,是把优秀的编程能力和开发技巧与严谨的软件工程思想有机结合在一起的。
编程只是软件生命周期的一部分。优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析、可行性分析、需求分析、结构设计、详细设计、软件测试等。
6.理解需求的能力
程序员应该正确理解任务列表中描述的需求。
这里要明确一点,一个程序员不仅要关注软件的功能需求,还要关注软件的性能需求。他应该能够正确评估他的模块对整个项目的影响和潜在威胁。如果一个有两到三年项目经验的熟练程序员不明白这一点,那只能说明他可能努力过,但他没有努力过。
7.模块化思维能力
作为一个优秀的程序员,他的思想不能局限于当前的任务。想一想他写的模块是否可以脱离当前系统而存在,通过简单的封装直接用于其他系统或其他模块。
这样做可以使代码可重用,减少重复性工作,使系统结构更加合理。模块化思维能力的提高是提高一个程序员技术水平的重要指标。