程序员怎么提高编程水平 和 看计算机程序的思维高度?
相关背景:
我做PHP半年多了,接触PHP一年半了
本来是在公司做SEM,接触到了dede织梦PHP系统,就开始业余自学HTML,CSS,PHP
业余就看网上的资料,视频,简单的blog项目代码,然后自己写了个网站首页,后来就在公司转岗做PHP了
工作中,边学边用js算是入门了,后来自己手动安装WAPM,在linux也折腾过
设计模式,自己一一测试过,20多种吧,对面向对象有点感悟
数据结构与算法--看了,感觉不知道用在哪
操作系统--没看完
语言就会点点C,会点PHP,目前又看了点python
还有高性能mysql的书还没看完
我专业是学的:电信工程,主要学过:模拟电路,数字电路,汇编语言与单片机,PCB电路板设计,C语言,微机原理与接口,EWB电路设计 VHDL编程...还有其他的忘记了...
最后一学期,自己用C语言+52单片机写过一个电子钟,可以定时整点报时,买元器件做了实物,比较耗电,C代码400多行吧,算是玩具级别的东西
我现在最大的疑惑就是:我一个做C++的朋友,他就好像能理解很多程序的实现原理,但我感觉还是在一旁混沌中,看不清程序的本质,达不到一通百通,看的那些书,感觉,就像一颗颗珠子,是散乱的,好像缺一根线把它们连起来,可是我找不到那根线,web以外的程序对我来说还是很神秘
目前所能理解的就是,程序,都是处理字符的(更底层点是101010...吧),接受用户输入,然后用一段算法处理好,然后以一种适合的方式保存在计算机中,并在用户需要的时候,显示出来。这个感悟是我结合pyton,php,mysql,redis,命令行模式,‘hello world’臆断出来的...
问题到底出在哪,缺少哪方面的知识,怎么补,怎么尽快成为高级程序员,站在一个新的高度看程序,看计算机,我觉得一个合格的程序员,至少在思维成面上不应该受某一个编程语言的限制 (我自己想的是用C写个程序,能接受输入并保存,然后仿照mysql来做功能,不知道有没有意义)
回复内容:
谢邀。我们老校长说,“行是知之始;知是行之成”。所以,弄不懂,首先就去写代码。要问问题,先show me your code——现在应该是show me your github了。Github上没有个几万行代码,就不用提“怎么尽快成为高级程序员”这种问题,反正别人给你金玉良言你也听不懂。我们这儿有个刚出道不久的小伙子,过去一年的github提交记录是这样的:
要不你先去把你的github也刷成这样再来提问题,省的大家白费唇舌? 有书的。。。
计算机体系结构 (豆瓣)
计算机程序的构造和解释 (豆瓣) 实力 = 理论 + 实践。
有个朋友告诉我,想成为高手,很简单,连续4年,每天坚持,早上6:00,到晚上23:00,坚持看书 + 做实验,4年后,你,就是高手。 看的书太差/少了,多找些好书看看。
你很可能写了很多重复且没用的代码。
别装作努力的样子每天把github刷绿,没用的,只能自己感动自己。(push三次不同的readme.md不就绿了?)
每天学一些新的知识,敢于挑战自己,脱离舒适区才会不断进步(就是你写一些感觉好难好痛苦,好不舒服的代码的时候)。
多说两句:学电子的很可能进入下源码,改参数,烧程序这个循环模式,忽略了基础知识的学习。
所以老老实实去把你说的数据结构,操作系统之类的东西看看。你现在就是知道各个发动机零件怎么用,也熟知组装之道,但是不知道这个零件怎么制造出来的。
@萧井陌@Badger4us 建议看看这两人的编程入门指南 应该可以规避很多麻烦 多用心,多思考 基础不牢
地动山摇
我可以负责任的告诉你一点
计算机这种东西是一通百通的
本质上来说不管是python c c++ c90都是计算机语言
你要明白我们为什么要编程 关键在于我们要和计算机进行沟通
打个比方 计算机是上帝 不论你是说法语西语中文还是天天安拉胡阿克巴 祂都能懂
所以你得懂语言是怎么回事
任何语言都有主谓宾定状补(学语言的憋拆我台,只是讲一些人生的经验)
语言不要学杂 你说你现在要涉足c 你就老老实实的把c弄透 自己问下自己 工作之余有一天敲多几个钟头的代码么 是热爱计算机还是只是谋饭吃 计算机思维就比如物理思维 得会当凌绝顶的时候才能顿悟 会做几道物理题不叫物理思维(逃)