转:十年总结-开篇:歇一歇,才能走的更远

本文强调编程学习的重点在于理解和应用原理而非拘泥于特定语言。作者提倡深入学习如线程同步、TCP/IP等核心概念,并建议首先掌握J2EE架构等基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 经常见坛子里有人问,学习java该如何入手,或者是该学java还是学XX语言。 

我一直觉得,编程跟语言关系不大,重点是要有解决问题的思路。 
学习一门语言,其实只是寻求如何将编程的思路落地。 

学习软件开发,可能还是先从原理入手比较好,很多人喜欢例子, 
但我觉得例子所能提供的信息虽然直观,但也非常有限。 

而且通过例子入手学习,由于例子先入为主,可能会带来一个后果: 
限制了对一种技术手段的灵活运用。 
这种限制,会导致学习者无法充分发挥某项技术的优势, 
也可能使他无法在技术和要解决的问题之间做出最好的匹配。 

所以,我说,用自己会的东西去解决所有问题,还是基于问题去寻找适用的技术, 
应该是能力高与低的重要差异。 

什么是原理? 

以武侠小说为例, 
高手都是内外兼修,而且往往先通过各种方式积累了深厚的内力, 
有此基础,在修炼精妙招式的时候,才能达到事半功倍的效果。 

那么,内功修为是激发人体潜能的原理,而招式则是一种技能, 
招式是容易传承和模仿的,可以速成,但内功修为则没有取巧的可能性。 


那么在编程学习过程,什么可以看作原理? 

以很多人曾问过的,将来必定还会有更多人问的“多线程聊天代码”为例, 
我认为其中可以看作原理的知识点有: 
线程(进程)的同步与互斥模型, 
TCP/IP通信协议 

进程控制方面,计算机科班出身的兄弟们应该知道,进程的同步与互斥是在操作系统中学习的,而不是在哪门编程语言中学到, 
java有自己的线程控制机制,c++也有,但他们的原理是相通的。 

而TCP/IP协议,可能会引起争议,有人会觉得学这个没有实用价值。 
的确,现代语言对底层通信封装的非常好,但我觉得还是有必要了解TCP/IP中的IP/UDP/TCP这三层的工作原理, 
平常没用,可一旦出现问题,这些知识才是解决问题的根本。 


再说两句现在的J2EE, 
我觉得学习J2EE,最先要看的就是SUN官方的tutorial,必须理解J2EE的架构, 
并至少了解jsp、servlet在J2EE架构中的位置、作用和工作方式。 

J2EE架构,可以认为是现在所有J2EE相关框架、容器、工具的核心原理。 

-------------------- 

一篇文章难以承载太多内容,我今后要陆续发帖,表达我的看法, 
主要是关于软件开发学习过程、软件开发过程本身、我对自己所掌握的技术的看法, 
以及软件开发过程中的非技术因素(主要是人的因素)。 

这是我从业10年的一份总结,以证明我这10年没有白混, 
也是我未来五年的一个新起点。 

无论您有什么想法、看法,只要是善意的,欢迎您与我讨论、辩论。 

如果这一系列的文章能够帮到某些人,我也会非常开心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值