❶ 怎样成为计算机高手
看看这个,你就明白了,希望对你有帮助!
一、为何要学编程?
每个人的动机不一样。大致有:
1、为了找个好工作;或为了有更好的机会和更好的发展。
2、看到别人超厉害,所以也想学。
3、实际工作中很多场合需要。
4、从小就立志做个程序员,做软件工程师。
5、振兴中国的软件事业。
。。。。。。
================================================
二、如何学编程?
1、多看好书。
差书误人子弟,不但浪费时间和精力,而且打击人的信心,差书使人很久都不会,让会让人怀疑自已的学习能力。
现在的书很多,但好书很少,特别是被大家公认很有价值的好书,更是少之又少。历经多年时间考验和市场风雨不残酷洗礼而仅存的巨着,更是极其稀少。中国历史上文学小说类书本多如牛毛,但仅存的巨着,也只不过<<红楼梦>>等四本名着而已,编程方面也是如此。
2、多动手。
这一点很重要。而且特别重要。“纸上得来终觉浅,绝知此事要躬行。”陆游的千古名句说的就是这个道理,并且同样适合于编程方面。
================================================
三、用什么语言最好?
这主要取决于应用领域,每种语言都有自已的长处和不足。
1、汇编语言和C语言在单片机及工控领域用较多。另外C语言也是一种通用语言,是学C++/c#的起点。
2、C++系统编程等多个方面,最常用的编译器是VC。
3、C#/java网络编程方面新兴的。
4、VB通用。
5、还有Delphi等。。。。。。
个人建议:从未编过程的,就从学vb开始。有基础的可直接学c++/VC。
===================================================
四、有什么好书?
几年前,台湾着名技术作家侯捷先生曾经写过一篇影响很大的书评文章,叫做《MFC四大天王》。文章的意思是说在MFC的浩瀚书海中,只要认真研读和学习其中四本,就可以“五岳归来不看山”。侯先生虽以MFC为例,但是这个道理却同样适合于MFC之外的很多具体技术领域,这不能不说是一个有趣的统计现象。
通常在某一个具体细分的技术领域,会自然而然地出现3-5本顶级着作,它们彼此互相配合,形成一个完整的体系。对于学习者来说,只需要认真研读这几本书,就足以升堂入室。我乐于将这种现称为“四书五经现象”。对于读者来说,如果能够找到该领域中的“四书五经”,则无论在时间上还是金钱上都是最经济的选择。好书几本,胜过烂书几捆,这个体会想必大家都有。在此,帮助大家遴选各个技术领域里的“四书五经”。
编程的书可谓汗牛充栋,其中经典也是不泛其数,但绝大多数的过来人,都一致认为,要想很快的入门并尽快的投入到编程实践中,只要其中的四到五本也就够了,即只看经典中的经典,圣经级的书就可以了。
所谓活到老学到老,程序员是个终身学习的职业,要不断的看书,直到放弃编程的那一天。所以,您要读的好书也绝非以下推荐的这些书哟,呵呵。
一句话,由于我们的时间、精力、金钱都是有限的,如何以最小的代价换得最大的收获。
================================================================
五、经典好书分类热销榜
1、java
java编程语言(第三版)---java四大名着----James Gosling(java之父)
java编程思想(第2版)----java四大名着----Bruce Eckel
java编程思想(第3版)----java四大名着----------------Bruce Eckel
java 2核心技术 卷I:基础知识(原书第7版)---java四大名着-----Cay Horstmann
java 2核心技术 卷II:高级特性(原书第7版)----java四大名着-----Cay Horstmann
Effective java中文版------java四大名着--------Joshua Bloch
精通Struts:基于MVC的java Web设计与开发---孙卫琴
精通Hibernate:java对象持久化技术详解---孙卫琴
Tomcat与java Web开发技术详解------------孙卫琴
java与模式------------------------------阎宏
2、c#
C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑”
C# Primer中文版--------Stanley B.Lippman---C#语言“倚天屠龙双剑”
.NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”---.NET平台四大天王
C# Windows程序设计----------Charles Petzold“windows编程泰山北斗”------.NET平台四大天王
.NET程序设计技术内幕-------------Jeff Prosise---.NET平台四大天王
.NET本质论--第1卷:公共语言运行库(中文版)--------Chris Sells---.NET平台四大天王
3、C++
C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父”
C++ Primer (第3版)中文版----c++八大金刚---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金刚---Stanley B.Lippman
C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis
C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父”
深度探索C++对象模型---c++八大金刚----Stanley B.Lippman
Essential C++中文版---c++八大金刚---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers
More Effective C++中文版----c++八大金刚------Scott Meyers
C++编程思想(第2版) 第1卷:标准C++导引--------Bruce Eckel
C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel
C++程序设计--------------------------谭浩强
C++ 程序设计教程(第2版)--------------钱能
C++ Primer Plus(第五版)中文版---Stephen Prata
广博如四库全书The c++ programming language、c++ Primer
深奥如山重水复Inside the c++ object model
程序库大全The c++ standard libray
工程经验之积累Effective c++、More Effective c++、Exceptional c++
c++八大金刚:
1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者
2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++网络全书代表,圣经。
3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++网络全书代表。
4、Inside the c++ object model-----lippman----揭示c++底层,非常好,非常难。
5、Effective c++-----通过50个编程实例,展示专家经验,行文有趣,深处浅出。
6、More Effective c++----通过35个编程实例,展示专家经验,行文有趣,深处浅出。
7、The c++ standard libray---c++标准库的网络全书。
8、设计模式:可复用面向对象软件的基础------good!
4、c
C程序设计语言(第2版·新版)---C语言“倚天屠龙双剑”---Brian W.Kernighan“C语言之父”
C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata
C程序设计(第三版)---------------------------谭浩强
C语言大全(第四版)---------------------------HERBERT SCHILDT
C语言接口与实现:创建可重用软件的技术-------------DAVID R.HANSON
C语言参考手册(原书第5版)--------------------------Samuel P.Harbison
C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱与缺陷-----------------------------------Andrew Koenig
5、VB
Visual Basic .NET技术内幕-----VB编程三剑客-----------Francesco Balena“vb首席大师”
Windows程序设计-Visual Basic.NET语言描述--VB编程三剑客-----Charles Petzold“windows编程泰山北斗”---
.NET框架程序设计:Visual Basic.NET语言描述--VB编程三剑客--Jeffrey Richter“windows编程泰山北斗”---
Visual Basic 6编程技术大全------------------------Francesco Balena“vb首席大师”
Visual Basic.NET 从入门到精通-------------------------Petroutsos,E.
高级VISUAL BASIC编程-----------------------------------MATTHEW CURLAND
6、Delphi
Inside VCL(深入核心——VCL架构剖析)----------李维
Delphi 7高效数据库程序设计--------------李维
面向对象开发实践之路(Delphi版)----------李维
7、VC
Windows 程序设计(第5版)-----Charles Petzold“windows编程泰山北斗”---
Windows核心编程----------Jeffrey Richter“windows编程泰山北斗”---
Windows高级编程指南---------Jeffrey Richter“windows编程泰山北斗”---
深入浅出MFC(第二版)-----“MFC四大天王”-------侯捷
MFC Windows程序设计(第2版)---MFC四大天王”---------Jeff Prosise
Visual C++ 技术内幕(第4版)--MFC四大天王”--------David Kruglinski
深入解析MFC-------------MFC四大天王”-----------George Shepherd
Visual C++.NET 技术内幕(第6版)-MFC四大天王”------------David Kruglinski
8、vf
Visual Foxpro程序设计参考手册-------------------张洪举
专家门诊——Visual FoxPro开发答疑160问-------------------张洪举
Visual FoxPro 6.0/9.0解决方案与范例大全-------------------张洪举
Visual FoxPro软件开发模式与应用案例-------------------张洪举
9、黑客
应用密码学(协议算法与C源程序-----------Bruce Schneier
网络信息安全的真相-----------Bruce Schneier
黑客大曝光:网络安全机密与解决方案(第5版)--------STUART MCCLURE
软件加密技术内幕------------看雪学院
加密与解密——软件保护技术与完全解决方案------------看雪学院
加密与解密(第二版)--------段钢
10、汇编
Intel微处理器结构、编程与接口(第六版)---------Barry B. Brey
80*86、奔腾机汇编语言程序设计---------Barry B. Brey
Windows环境下32位汇编语言程序设计(第2版)-----------罗云彬
IBM-PC汇编语言程序设计(第2版) 本书是国内优秀教材--------沈美明 温冬婵
IBM PC汇编语言程序设计(第五版) 这本书籍是国外优秀教材-------PETER ABEL着,沈美明 温冬蝉译
11、驱动开发
Windows WDM设备驱动程序开发指南------------------------------------ Chris Cant
Windows 2000/XP WDM设备驱动程序开发(第2版)--------------------------武安河
WINDOWS 2000/XP WDM设备驱动程序开发-------------------------------- 武安河
12、网络
计算机网络第四版中文版----网络编程三剑客--------------Andrew S.Tanenbaum
TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客
UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客
用TCP/IP进行网际互联-----------Douglas E. Comer
高级TCP/IP编程-------------------Jon C. Snader
C++网络编程-----------------------Douglas Schmidt
UNIX环境高级编程(第2版)--------------------Richard Stevens
13、算法
计算机程序设计艺术-------Donald.E.Knuth----------算法“倚天屠龙”双剑
算法导论-----------------Thomas H. Cormen--------算法“倚天屠龙”双剑
离散数学及其应用----------Kenneth H.Rosen
具体数学—计算机科学基础--------Donald.E.Knuth
14、图形编程
Windows 图形编程----------------FENG YUAN --图形编程界的Charles Petzold之书
15、数据结构
数据结构 C++语言描述》58.00(Data Structures C++) William Ford,William Topp 刘卫东 沈官林
数据结构算法与应用-C++语言描述》49.00Sartej Sahni 汪诗林 孙晓东等机械工业出版社
16、软件工程
设计模式--可复用面向对象软件的基础
重构—改善既有代码的设计
17、操作系统
深入理解计算机系统(修订版)-------RANDAL E.BRYANT
18、Unix
UNIX 网络编程 卷I 套接字联网API(英文版 第三版
UNIX 编程艺术
UNIX环境高级编程(英文影印第2版-----UNIX编程“圣经
UNIX环境高级编程(英文影印版)(第2版)
UNIX环境高级编程(第2版)
UNIX环境高级编程(第2版)---UNIX编程“圣经
UNIX网络编程 第1卷:套接口API(第3版)
UNIX网络编程卷2:进程间通信(第2版)(英文影印版)
UNIX 网络编程(第二版)第2卷:进程间通信
UNIX编程环境
UNIX 网络编程 卷I 套接字联网API(英文版 第三版
UNIX系统编程
UNIX环境高级编程
UNIX 网络编程 卷I 套接字联网API(英文版 第三版)
UNIX网络编程 第1卷:套接口API(第3版)
UNIX 网络编程(第二版)第2卷:进程间通信
UNIX网络编程卷2:进程间通信(第2版)(英文影印版)
UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API
UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版)
UNIX环境高级编程
Unix技术手册
19、linux
Linux内核设计与实现
Linux内核完全注释
LINUX内核分析及编程
GNU/Linux 编程指南(第二版)
Linux设备驱动程序(第三版)
嵌入式设计及Linux驱动开发指南——基于ARM 9处理器
Linux设备驱动程序 第三版(英文影印版)
Linux内核设计与实现(第2版)
Linux内核设计与实现(英文影印版)(第2版)
linux技术手册
20、游戏编程
Windows游戏编程大师技巧(第二版
游戏之旅--我的编程感悟
OpenGL超级宝典:第三版
OpenGL编程指南(第四版)
java 游戏高级编程
J2ME手机游戏编程入门
游戏之旅——我的编程感悟
游戏开发中的人工智能(英文影印版)
3D游戏:卷2 动画与高级实时渲染技术
面向对象的游戏开发
java 游戏高级编程
3D游戏编程大师技巧
游戏编程精粹
面向对象的游戏开发
3D游戏 卷1:实时渲染与软件技术
3D游戏:卷2 动画与高级实时渲染技…
J2ME手机游戏编程入门
Direct3D游戏编程入门教程(第二版…
21、移动开发
Windows Mobile手机应用开发
SYMBIAN OS C++手机应用开发
Windows Mobile手机应用开发--傅曦 齐宇 徐骏
SYMBIAN OS C++手机应用开发 (第2卷)------------------RICHARD HARRISON着,周良忠 王伯欣译
SYMBIAN OS C++手机应用开发---------------RICHARD HARRISON着,周良忠译
Windows CE.net内核定制及应用程序开发---------周毓林 宁杨 陆贵强 付林林
嵌入式系统Windows CE 开发技巧与实例--傅曦
Palm OS编程实践---绝版
22、单片机
单片机轻松入门----------------------------------周坚(平凡老师)
单片机典型模块设计实例导航-----------------------求是科技
例说8051----------------------------------------张义和 陈敌北
KEIL CX51 V7.0单片机高级语言编程与ΜVISION2应用实践-----徐爱钧
单片机应用程序设计技术(修订版)--------------------周航慈
8051单片机实践与应用-------------------------------吴金戎
MCS-51系列单片机实用接口技术---------------------李华
23、串并口通讯
Visual C++/Turbo C串口通信编程实践------------------龚建伟
VISUAL BASIC与RS-232串行通信控制(最新版)----------范逸之
24、电子
无线电识图与电路故障分析轻松入门(第二版) -------------------胡斌
无线电元器件检测与修理技术轻松入门(第二版) -------------------胡斌
图表细说电子技术识图-------------------胡斌
图表细说电子元器件-------------------胡斌
图表细说元器件及实用电路-------------------胡斌
================================================================
六、怎样成为一名程序员
通过以下4个阶段的训练, 没有任何编程基础人就可以成为一名普通的程序员。
第一阶段:掌握一种编程语言
学习内容:学习任意一种主流的编程语言。例如C++语言。
学习目标:熟练掌握一种语言的语法和基本的编程技巧。
学习时间:3个月左右
注意事项:编程语言和编程工具是两回事情,编程语言是指C++、Basic、Object Pascal等程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代码编辑器、程序编译器在内的集成化、可视化的软件开发工具。C++源程序可以在Visual C++ 6.0里编写,也可以在记事本里编写,而同一个C++源程序可以用Visual C++ 6.0编译、执行,也可以用C++ Builder 5.0 编译、执行,所以: C++ 不等于 Visual C++ 6.0
第二阶段:掌握一种编程工具
学习内容:学习任意一种主流的编程工具。注意编程工具要和第一阶段学习的编程语言一致,例如你学习的编程语言是C++,那么编程工具要选Visual C++ 6.0或者C++ Builder 5.0。
学习目标:熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。
学习时间:3个月左右
注意事项:这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各种基本的Windows程序。
第三阶段:掌握“算法与数据结构”这门课程
学习内容:算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。
学习目标:熟练掌握各种常用的算法与数据结构
学习时间:4个月左右
注意事项:这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,这说明了数据结构和算法的重要性。它能帮我们建立良好的程序分析与设计能力。
第四阶段:实现一个模拟的小型软件项目
学习内容:软件项目的开发过程
学习目标:掌握软件项目的基本开发过程和方法
学习时间:4个月左右
注意事项:自己完成一个模拟的小型软件项目,强烈推荐做一个MIS(管理信息系统)软件,参考用书推荐“中小型信息管理系统开发实例系列丛书”,人民邮电出版社,它的例子详实有效,以它为基础再加以扩展,就可以做出实用的MIS软件来。此丛书包括多种开发工具,大家可以选择适合自己的:《VISUAL FOXPRO6.0 数据库系统开发实例导航》 《java数据库系统开发实例导航》 《VISUAL BASIC数据库系统开发实例导航》《VISUAL C++6.0数据库系统开发实例导航》 《ASP.NET数据库管理系统开发实例导航》 《DELPHI数据库系统开发实例导航》《POWERBUILDER 8.0数据库系统开发实例导航》。
最后将完成的模拟软件刻成光盘,作为自己的作品去面试,以此踏上自己光辉的职业程序员之路!
❷ 如何成为一个程序老手,新手必知的40个小技巧
老鸟和新手的一个很大区别来自于debug的能力。其中最主要又可以从两方面看出来:
从高层往底层找错。
科学方法。
0.重构是程序员的主力技能。
工作日志能提升脑容量。
先用profiler调查,才有脸谈优化。
注释贵精不贵多。杜绝大姨妈般的“例注”。漫山遍野的碎碎念注释,实际就是背景噪音。
普通程序员+google=超级程序员。
单元测试总是合算的。
不要先写框架再写实现。最好反过来,从原型中提炼框架。
代码结构清晰,其它问题都不算事儿。
好的项目作风硬派,一键测试,一键发布,一键部署; 烂的项目生性猥琐,口口相传,不立文字,神神秘秘。
编码不要畏惧变化,要拥抱变化。
常充电。程序员只有一种死法:土死的。
编程之事,隔离是方向,起名是关键,测试是主角,调试是补充,版本控制是后悔药。
一行代码一个兵。形成建制才能有战斗力。单位规模不宜过大,千人班,万人排易成万人坑。
重构/优化/修复Bug,同时只能作一件。
简单模块注意封装,复杂模块注意分层。
人脑性能有限,整洁胜于杂乱。读不懂的代码,尝试整理下格式; 不好用的接口,尝试重新封装下。
迭代速度决定工作强度。想多快好省,就从简化开发流程,加快迭代速度开始。
忘掉优化写代码。过早优化等同恶意破坏;忘掉代码作优化。优化要基于性能测试,而不是纠结于字里行间。
最好的工具是纸笔;其次好的是markdown。
leader问任务时间,若答不上来,可能是任务拆分还不够细。
宁可多算一周,不可少估一天。过于“乐观”容易让boss受惊吓。
最有用的语言是English。其次的可能是Python。
百闻不如一见。画出结果,一目了然。调试耗时将大大缩短。
资源、代码应一道受版本管理。资源匹配错误远比代码匹配错误更难排查。
不要基于想象开发, 要基于原型开发。原型的价值是快速验证想法,帮大家节省时间。
序列化首选明文文本 。诸如二进制、混淆、加密、压缩等等有需要时再加。
编译器永远比你懂微观优化。只能向它不擅长的方向努力。
不要定过大、过远、过细的计划。即使定了也没有用。
至少半数时间将花在集成上。时间,时间,时间总是不够。
与主流意见/方法/风格/习惯相悖时,先检讨自己最可靠。
出现bug主动查,不管是不是你的。这能让你业务能力猛涨、个人形象飙升; 如果你的bug被别人揪出来.....呵呵,那你会很被动~≧﹏≦
不知怎么选技术书时就挑薄的。起码不会太贵,且你能看完。
git是最棒的。简单,可靠,免费。
仅对“可预测的非理性”抛断言。
Log要写时间与分类。并且要能重定向输出。
注释是稍差的文档。更好的是清晰的命名。让代码讲自己的故事。
造轮子是很好的锻炼方法。前提是你见过别的轮子。
code review最好以小组/结对的形式。对业务有一定了解,建议会更有价值(但不绝对)。而且不会成为负担。管理员个人review则很容易成team的瓶颈。
提问前先做调研。问不到点上既被鄙视,又浪费自己的时间。
永远别小看程序媛(╯3╰)!
❸ 为什么国外的程序员可以成为大师,而国内的
中国码农不是不专业,而是“浮躁”,写代码从来不是职业,只是通往更高职位的阶梯而已。
在中国任何一个角落,码代码的都会告诉你,35岁之后就会码不动了,招聘广告也会写明,20~35岁,你35之前不从代码转管理,你死定了等等等等。经常听别人说,干过2年以上可以算得上高级程序员,5年以上就可以上到技术经理,再往上最好到30之前就爬到技术总监。说得仿佛人生必须在40岁之前完结一样。
❹ 如何从一名纯小白变成一位高级程序员,求解谢谢!!!
这本书一开篇就详细介绍了作者的前妻如何从初中没毕业的学历背景下短时间内成长为年薪40万的高级程序员的经历。具体内容比较长,可度娘或买书来看。
❺ 怎么成为一个编程大师
现在编程的工资很低的,没有工作经验的1500,如果你想拿3000以上的工资,要好好地花时间精力去学呢,而且培训部讲的内容只是皮毛,入门而已,要真正的用到工作上做项目还要学很多东西!
至于学的课程有很多了。从最基本的开始:c语言,数据库sql server,oracle,VB,c++,VC++,java,.net
现在主流的Java和.Net,Java比.Net学起来比较难,.Net因为是微软的东西,很多东西都帮你封装好了,开发起来比较快。
如果你从来没有接触过编程的话,那是比较难的,隔行如隔山。如果你下定决心要学的话,那就得要有毅力,肯下功夫,编程不是那么容易学好的。做程序员很累人的,要谨慎啊!
编程的书很贵的,刚开始不要买太多的书,到图书馆里去借就可以了,以后学的深了,要买的书多着呢,每出来一个新技术或更新一个版本,就会出版很多书,看也看不过来,到时候赚来的钱都去买书了!哈哈~!
总之一句话:编程是个苦差事,不要花了时间,金钱,精力去学,到时却是一场空,还是好好考虑一下吧!
❻ 程序员,如何少走弯路,成为一名技术专家或者架构师
#1 专业技能
@首先当然基础知识要扎实,一些经典的专业书籍一定要看。比如,设计模式,算法,数据结构,所在领域的编程语言的专业书籍等.关于不同的能力阶段,需要读取什么类型的书籍,请参考ThoughtWorks(中国)程序员读书雷达,每年都有更新。
@作为架构师,review别人的代码并给出合理的建议是基本功,比如变量或者方法命名的规则;所以代码大全,重构,改善既有代码的设计,Clean code 等等肯定需要看。
@ 对于某一个技术领域或者业务领域,一定要有一门技术是精通的,因为这样你才能体会到以后遇到自己不懂的技术的时候,如何能够快速成为这一方面的行家。
@ 平常有时间一定要多多进行代码的训练,也就是Martin Flower常说的Kata练习,这个比喻来自于跆拳道,跆拳道选手一般每天都会找一些基本的招式,进行反复的练习,从而训练肌肉的条件发射,那么对于我们程序员来说,一定也要进行持续的编程训练,比如上面提到的那位同事,给的建议是,虽然把大部分时间花在了沟通和协调上面,没有机会写代码,但是自己一定要利用业余时间,自己找一些例子来联系,比如,参与开源项目,或者到网上去搜索一些大师的经典Kata联系的例子;或者看工作里面是否有一些小工具,是否能够提升自己的沟通效率,当然已经天天写代码的童鞋们除外。请参考我转发的另外一篇文章和另外一篇介绍能在线练习Kata code的文章.
@ 最好能够在精通一门语言的基础之上,学习其他的语言,从而站在一个更高的角度,对于程序语言有一个更高层次的抽象认识,比如,学了Java之后,可以学学Ruby,Groovy,C#等等,其实语言之间都是相互借鉴的,比如Lamba表达式,连java也慢慢的向函数式编程方向靠拢。
@ 如果有时间,一定要自己维护一个博客,既然选择了架构师,就决定了自己以后不仅仅是一个技术专家,同时也要成为一个布道师,为企业组织或者社会上的其他IT同行们贡献自己的一些微薄之力。
@ 多参加一些社会上举办的软件专业会议或者活动,了解当前比较流行的技术和框架。
@ 这条不提倡,我以前有一个同事,几乎每年都要更新简历1~2次,目的不是真正的换工作,而是通过面试得到当前市场上大部分公司正在使用什么技术和框架。对于这条,请慎用!!!!
@如果有结对编程的机会一定要好好珍惜,特别是和高手大拿一起结对的时候。
@如果大家上面都已经做的非常的好了,这个时候可以看看架构设计方面的书籍,比如企业应用架构模式,架构之美等等。
@ 去51Job上搜索架构师这个职位标签,看看不同行业的企业对于架构师的技术要求和标准,然后结合自己当前所处的行业和你自己的技术特点,比如擅长前段或者后端,有选择性的学习一些自己感兴趣的技术或者方法。
@ 关于常用的网站,没有定论,笔者主要是根据搜索的结果去发现适合自己的网站,所以需要读者掌握一定的搜索的技巧,笔者一般喜欢用英文搜索,这样的话资料比较全也比较新;如果下载电子书的话或者查看博客的话 一般会首选CSDN;如果是解决工作中的问题的话,在StackOverFlow上面被解答的概率是最大的,此外平常自己也需要去积累一些自己感兴趣的技术的人气比较旺的网站列表,比如一般和Window相关的就是MSDN;如果对Java入门比较感兴趣,可以看看这个网站。对于一些开源的框架,一般都会有想对应的社区,google一搜索,很快就能找到。另外一个德国人写的博客的非常的精致,如果对Eclipse插件开发特别感兴趣的朋友们可以去参考它。
@大家如果时间和精炼允许,最好能在Github开源和分享自己平常写的代码。这样一方面可以熟悉git用法,另外一方面也可以把自己平常练手的代码免费保存,何乐而不为呢?
@如果大家平常遇到什么问题,可以到StackOverFlow上面去寻找答案;当然,如果你能自己注册一个StackOverFlow账号那是最好不过的,这样不但可以提问,还可以帮助别人,同时上面还有很多工作签证的工作机会。
#2 软技能(现代社会,一个合格科学家不仅仅是某一个行业的技术专家同时也是一名专业的社会活动家)
@遇到问题,一定要多想,遇到一个问题,如果解决了,就要反思为什么能够解决,如果以后遇到类似的问题,
如何更快速的解决。
@英语的重要性,不言而喻,因为现在很多新技术的框架的中文文档非常的少,即使翻译成中文,也是二手的了(国内自己的开发的一些开源框架除外)
@ 有时间的话,看一些沟通方面的书籍,如果有参与沟通的机会的时候,一定要想如何把沟通做的更好更舒畅。
@ 如果有机会的话,可以参加PMP的考试,关于如何备考PMP,请大家参阅另外一篇文章:如何备考PMP,但是如果不想参加的话,也没有关系,至少要涉猎到项目管理方面的书籍,否则以后如果成为架构师之后,客户或者管理者给你说一些项目管理上一些专业术语时,到时候就会一头雾水。
@架构师其实从某种意义上就是一种角色,而不是一种职位。一定要时时刻刻保持空杯心态。
@一定要有一颗保持饥渴学习和耐得住寂寞的赤子之心。
@当前的技术节凑是非常快的,特别是结婚以后又有小孩了。一定要好好的利用自己碎片时间,对于一些技术,当时读不懂不要紧,但是一定要记住和了解其关键词,这个主要是为了拓宽自己的视野。比如,当前你想自己开发一个系统,结果已经有一个开源框架实现了,而且还很稳定,这个时候,自己就没有必要重复发明轮子了。
@与不同的技术、编程语言、设计模式和结构等(甚至是它并没有在日常中给予你直接的帮助)打交道。你永远都不知道这些知识是否会在未来派上用场,但是对你绝对是有益无害。
@在工作中,能够帮助到别人解决技术难题,一定要尽量全力以赴,因为这不但可以赢得同事的好感和口碑,同时也能增长你解决问题的经验和提高你的技术思维能力
@ 一定要掌控好自己的时间,对工作没有帮助的会议,能不参加尽量不要参加,当然,企业安全,公司规章制度如果是强制性的,该参加还得参加,但是如果没有工作效率和扯皮的会议,尽量避免参加。
@程序员要耐得住寂寞,要在自己的领域深挖,不能看啥火,就学啥,一定要有自己的想法和判定,如果决定不了,可以向资深的同事或者朋友沟通。
@尽量参与到项目中的编码,因为架构师不能与项目脱离。
@ 如果有机会可以锻炼一下自己在大众环境下的演讲和PTT的能力。
@有机会多做知识分享,因为你一旦分享了知识,你就会对这门技术有深刻的印象,同时也能树立在同事中的良好的技术形象,从而赢得更多的专家影响力而不是职位影响力。
上面只是我当前能想到的,知易行难,知道了上面的一些经验,并不代表年轻程序员们就能马上成功,毕竟这需要一个凤凰涅槃和实践的过程,但是肯定能帮助有志于于此的年轻程序员们少走一些弯路,限于笔者水平,如有总结不恰当或者不到位的地方,还望批评指正。
❼ 一个经验丰富的大师级程序员,要学哪些知识
你好,谢邀。
月薪数万通常是指管理层或者架构师级别的程序员。
看个人的发展方向了。我的建议是先打好基础,基础是一切,包括网络腾讯等公司的面试题都是以基础为核心的。
我这里列出一些语言贡你参考:
C/C++, JAVA, Python, javasrcipt.
知识体系是很重要的,程序员本质上是一直在吸收新的知识,包括也要理解业务知识。
知识体系包含操作系统,C/C++语言,数据结构,算法,计算机网络,计算机组成原理,软件工程等基础知识。进阶是面向对象,服务器架设等知识。
建立起知识体系以后,可以独立吸收更多的知识了。如泛型,软件体系结构设计。
建议是打3~5年的基础,打好以后花2~4年在工作中积累经验,吸收新知识,继续巩固。
数学学不好没关系,作为了解,最好是理解计算机的工作原理,需要离散数学等知识作为支撑。
算法的描述本质上也都是数学的,所以最好是多学一些数学。
如果是管理层,如PM或者高级PM,技术总监等,也是需要很多的项目历练和积累的。
活学活用,基于自己的知识体系善于变通是很重要的。
做几个项目以后就会有概念了。
然后薪资问题,也看公司和你的水平了。多花时间提高自己才是正解~
❽ 如何成为一个杰出的程序员或软件工程师
我不能算是一个很优秀的程序员,但这个问题我已经反复思考了五年了。跟大家分享一下我的看法:
首先, 我认为答案绝对不是 "只要写很多年代码就好了“。我面试过不少有10年经验,代码却写的很糟糕的程序员。经验很保贵, 但只靠经验是不够的。就像下棋一样,假如你用心研究,复习,不断挑战自己,也许可以成为一名大师。但不断用懒散的方式去玩棋,下20年也只是一个"臭棋篓子“。
我觉得比较有用的进步方式:
1. 学会看代码
大多数程序员都只愿意用自己写的代码,但高手一般可以轻易调用别人写的代码。表面看上去是工作习惯不同, 但实际上是能力上的差别。看代码要比写代码难很多倍。
我建议上班时多给队友们作code review,下班后试着阅读github上的开源代码。
2. 复习
程序员一般都很忙, 手上有永远也做不完的活儿。但在某些公司里, 你只是在反复做同样的事。偶尔放下手上的活儿,留下一部分时间来分析自己的弱点,更改坏习惯,看新书, 或学习新语言。
3. 做个人项目
工作中的编程一般只能让你熟悉一部分技术, 导致漏洞的形成。这就好像你长期一个人在自己后院练习投篮, 但第一次打比赛才(在惨败中)发些原来还需要传球, 防守, 强篮板这些概念。
Facebook喜欢雇佣所谓的 “full stack programmer”,就是一个人从设计,到交互,到html, css,javascript, server,sql, 架构,和数据统计都能做。成为full stack programmer最好的方式就是不断做个人项目。
4. 问答网站
问问题和回答问题都是很好的学习方式。 有的时候写出一个好问题, 比写出解答次问题所需要的代码还难。写问题可以帮你整理自己的思维逻辑。你可以试着每周在http://stackoverflow.com上问一个好问题或写一个好答案。
5. 加入一个好团队
最好的进步方式就是跟比自己强的人一起做事。高手都愿意聚在一起,所以很多会选择去优秀的早期创业公司。我在硅谷和创新工场创业时遇到了很多神人, 跟他们学了不少东西。
❾ 程序猿穿越回古代,能有什么作为
这是一个好问题。
首先,你要明确程序员是搞什么的程序员,别唔会说,其实只是一种职位,好像医生一样,程序员的分科非常复杂,而且基础科目都不尽相同,我本科就是读的电子信息工程,硬件也要涉及,底层编程也要涉及,通讯也要涉及,我个人建议,穿越回古代的话,最好就是电子或者通讯。
其次,假设是宅男,不是历史谜、军事迷,但是必须有3个基本要素:第一,身体好,不近视,可以不会武功;第二,最好是物理高材学生,理科全优,文科是个渣都无所谓,性格也是无所谓的;第三,动手能力强,最好喜欢搞机器人(我自己在大学就是机器人协会,知道很多程序员都是这个方面的高手)或者模型之类。
那么,程序员可以做:
第一,这个程序员最大的优势在,强大的物理、化学以及数学知识,外加动手能力强,可以作为格物大师,武器大师,或者暗器大师,回去通过物理以及数学特长,搞点宝刀宝剑武器,搞点乌金神衣刀枪不入,搞点毒药,搞点暗器,最好回去就是成为四川唐门之类的人物,通过修炼,武功3流,装备一流,类似韦小宝之类。
第二,LZ可以去了解矿石收发报机,避雷针等基础原理,这些都是通讯基础,我们在大学就试过用原始材料,做通讯实验,在简直就是千里传音,而且古代干扰少,绝对可以大有作为。
第三,标准化、制度化生产,绝对是程序员的特长,改革生产方式,促进生产,做个幕后老板,也不是不行。
第四,密钥加密,外加通讯协议的改良,也是可以在军事、票据业务大有作为,真正的飞鸽传书,就是怕被敌人获取,如果有良好的加密手段,就可以避免,增强信鸽业务的安全性能,不过这一点必须是在五代十国前,五代十国后以及普及了,就没有意义。
第五,望远镜、钟表、航海仪,在军事、运输、镖局、航海等领域,那是大大必须,拥有了,那必须的牛。
第六,神教,装神弄鬼,通过一些物理以及化学知识,外加一点点心理学,搞点小魔术,骗古代,跟玩似的,而且宅男的低调性格,只要脸皮厚、腹黑、毒舌,那就是一个完美的神教教主形象,弄点符水当神药,弄点假药当毒药,不骗死都吓死别人,别人还不顶礼膜拜。
最后,为了使角色更加完整,穿越者平时玩的电子游戏也是非常重要,就我身边的程序员来说,虽然都是个技术宅,不代表就是个废,只是性格内向,不解温柔,语言能力比较差而已,但是,搞程序的人,脑子真的很少笨,玩wii里面的体育竞技游戏,各个牛人;以前玩cs、星际、魔兽,现在玩的LOL那个战术思维以及微操,也绝对风骚;时事政治、时尚潮流差点,很正常,但是对自己感兴趣的东西,记忆力是非常强大的。因此,程序员穿越,应该从一个巧匠开始,而且性格多是沉闷的人,会比较有意思。
希望能够帮到你~
❿ 我干了5年android程序员了,怎么往架构师转,需要具备哪些技能
前端工程师+程序员+系统管理员+对各种技术灵活搭配的能力+模式总结=架构师
这些就是一个架构师所需要具备的技能
台湾android教父高焕堂出了个叫《android从程序员到架构师之路》的课程也许会对你