如何学习编程?顺便介绍些好的网站
学习编程的过程,大致如下:
- 看书、看博客、学课程或者看视频等
- 模仿着书上或者博客的代码,进行复现,复现不重要,思考才是关键 ⚠️
- 思考学习别人思路后,脱离书本和博客,完全自己实现功能
- 自己实现一些 DEMO,看别人项目代码,与别人讨论,提升代码能力
- 在别人的框架和要求下,写代码实现业务
- 自己负责别人设计的模块的实现
- 独立设计业务模块并开发实现
- 负责大项目框架设计和拆分,带领别人进行开发
- 其他高阶的架构和管理工作,已经不仅仅是代码能力了
而以下就是我个人总结出的六项重要诀窍。
1.让编程成为一个习惯
想要培养一项技能的最好的办法,就是将他融入到我们的生活并成为我们的爱好。其实说白了,就是让这个爱好成为一个习惯,一天不去做这件事情,都会觉得少了什么。在不知不觉中,这个习惯会像滚雪球一样积累起来。
对我来说,养成这种习惯首先就是要对“拖延症”说不。比如,你想锻炼下自己的写作能力时,但是没有好看的本子,没有好的灵感,没有安静的环境....总之就是找各种理由一拖再拖,最后就不了了之了。
但仔细想想等你有了好看的本子,舒适的环境....就能写出好的文章吗?不!我很明确的告诉各位,文章的功底是随着你不断的积累而成的。所以,当我们决定去做某件事情,请立刻!马上!现在就要开始行动!
接着从小事入手,如果我决定开始跑步,那么最初只会要求自己每周跑两、三天。虽然看起来要求低,但这样的作法更容易长期坚持,且不会被其它因素所轻易干扰。
同样的思路也适用于学习编程。每周拿出几天,每天拿出几个小时,编程学习就这样慢慢步入正轨。如果大家觉得没心情阅读编程教材,没关系,视频网站上的技术讲座能够起到同样的作用。
2.把工作拆分成小块
对待编程工作,我们没必要像健身狂人那样一口气做到筋疲力尽。与其直接编程2小时,我们完全可以先做25分钟、而后休息5分钟,整个过程重复4次。很明显,25分钟这样的短周期更容易坚持也不会带来多少压力。
不过这样的方式应该配合更为灵活的执行思路。如果您感觉状态很好,而25分钟才刚刚完成热身,那就继续做下去并努力让自己抓住这种状态。向大家推荐蕃茄工作法,这是种学习新型技能的良好机制,推荐各位认真了解。
3.阅读别人的代码
经过这几年的编程学习,我认为想要提升编码水平的最佳途径就是多看、多写,然而阅读别人的代码也确实是快速提升代码水平的一个技巧。至于如何高效地阅读代码,请参考我的这篇回答:
程序员如何高效读代码?www.zhihu.com
4.寻找良师益友
学习编程的一个很好的方法就是和其他的程序员交谈。这不仅能够帮助我们多获得一种思维方式,同时也能够以更为愉悦的感受完成学习任务。至于内容没有特定的要求,可以是你正在学习的东西,也可以是你认为很酷的东西,更可以是你正在工作的东西。这样做可能会让你学到很多关于库,服务,编程语言和模式方面的知识。但是,最重要的是,你能了解到其他人是如何看待编程的。
5.写技术文章
如果大家学习了一种新的编程概念,但不能确定自己是否已经真正掌握,可以写技术博文加以检验。或者是在技术博客网站上搜索,找找是否有人提出了类似的问题,然后给出您自己的答案。如果答案不对,那么讨论的过程能够有效加深理解。这样的过程,能给我们带来宝贵的经验,同时也能帮助他人。
值得提醒的一点,别因为自己刚刚涉及编程而有所顾虑。罗马不是一天建成的,出色的程序员也是一样。只要您对问题有所了解,就不妨给出自己的答案——无论对错,这都将成为一次宝贵的经历。
6.保持耐心
对于人生来说,其中任何目标的实现都离不开耐心。编程学习就如其它任何学习任务一样,都需要反复努力并投入大量时间。
在这个过程中,您一定会经历高潮与低谷——别被这些曲线影响了心情。接受已经发生的一切,并尽可能避免其中不好的部分。就像打高尔夫球一样,我们的手感总在不断浮动,但只要坚持到底,您最终总能成为一个大神呢~
同志们,加油!
很多人觉得学编程难,大都是掌握方法,而不是能力、性别或其他原因。除了想达到行业顶级开发者的水平,如果你是想学编程,掌握了对的方法,就能学好。
个人通过题目描述分析,应该是学习方法不对,没有培养出编程的思维和能力,这是一个因果关系。
感觉编程难,我在初学编程的时候也遇到过。刚刚学习编程会走很多弯路,想找一个合适的方法学习。有这样想法是值得鼓励的,至少是知道怎么学习更好。我本人有些参考经验,可以吸取适用自己的地方。
计算机重点在于用已有的知识搭构建功能,而构建功能的步骤是固定的,只是需要掌握牢基础知识,并且提升自己的思考能力。思考能力也算是程序员的核心了(不是看,不是写,而是思考,如果照着别人代码写同时带上了思考,那么也是有效果的)。我建议的学习方式如下:
学习基础知识:
1. 数据结构,经典算法。可以根据学到的算法和数据结构解决书本习题后面的算法问题(注意不是看了解答过程再重复写一遍,而是在自己不知道情况下写一遍,代码量可能是只有十几行,写花不了多少时间,只是思考得花些时间——一定要坚持,我曾经思考了几天就为了解一道算法题,当然根据自己的情况,不用一下选这么难的。这里培养的是解决问题的思考能力)。
2. 学会写递归,同时把递归变为循环实现相同的功能。(此处是完善思考能力,再提升一步)
当你学会前面2条的时候,即使你是第一次接触计算机,经过努力和学习掌握后水平已经超过了入门的同学,达到了中级的概念。这是内功,不是说你对某个语言运用自如了。武林高手比武比拼的是内功,外面掌握语言学习用法只是熟悉程度是外在的招式(这个非常容易掌握,多写几次就会)。
为什么开始就进入内功的修炼,因为万法归一,万变不离其宗,无论你以后学习什么语言,学了多少语言,刚进入的水平就是中级,一劳永逸。
后面只需要花点时间掌握语言的用法,方法调用,框架的使用,那么恭喜你,你的能力已经可以胜任大部分互联网公司的职位了。(这里得注意顺序,是先掌握了核心的算法和思想后才是熟悉语言本身)
下面是通往高手的进阶篇,只有在你掌握上面的东西后,才能开启下面的技能:
开发过程中多思考,多尝试新东西,思考是通往编程高手应该具备的基本素质。
这里还是思考,和上面还有不同。思考不是瞎思考,而是有深度思考,出色的程序员写代码的时间非常少,大部分都是在思考。给你一个功能,需要根据自己有的基础知识在脑海中想怎么实现合理,高效,想清楚后再写,而不是边写边改边想,那么水平永远都是止步不前的抑或进步和蜗牛一样。
当思考同一类问题,用的时间越来越少,那么侧面反映出水平提高了,可以试着思考更复杂的问题。思考需要循序渐进,不能一开始拿一个非常复杂的问题思考,而是在自己跳一下就能够到的高度。
对于在公司上班,你会发现思考时间越来越少,完全是需求到了就马上知道怎么写了。然后就是无聊听着公司领导介绍,开会讨论。但是不要忘了,自己得给自己找事做,停止思考或者习惯了某种思考模式后进步就会减慢,要进步就要不断尝试新东西,多思考。
以上就是我建议的学习方法,希望能对你有所帮助。当然,每个人都有自己的学习方式和习惯,适合自己的,才是最好的。
参考内容: 自学成才的程序员,给新手学习编程的六个建议
推荐一些程序员学习网站:
0. GitHub — 开发者最最最重要的网站:https://github.com
这个不用多说了吧,代码托管网站,上面有很多资源,想要什么轮子,上去搜就好了。并且呢,上面有很多优秀的程序员,你可以在这里交到很多好朋友喔。
1. Stack Overflow — 解决 bug 的社区:https://stackoverflow.com/
开发过程中遇到什么 bug,上去搜一下,只要搜索的方式对,百分之 99 的问题都能搜到答案。在这里能够与很多有经验的开发者交流,如果你是有经验的开发者,还可以来这儿帮助别人解决问题,提升个人影响力。
2. 程序员客栈:https://www.proginn.com/
程序员客栈是领先的程序员自由工作平台,如果你是有经验有资质的开发者,都可以来上面注册成为开发者,业余的时候做点项目,赚点零花钱。当然,如果你想成为一名自由工作者,程序员客栈也是可以满足的。只要你有技术,不怕赚不到钱。很多程序员日常在这里逛一下,接一点项目做。很多公司也在这发布项目需求。
3. 掘金 — 帮助开发者成长的技术社区:https://juejin.im
现在国内优质的开发者交流学习社区,可以去看大佬们写的文章,也可以自己分享学习心的,与更多开发者交流。认识更多的小伙伴儿,提升个人影响力。
4. v2ex:https://www.v2ex.com/
V2EX 是一个关于分享和探索的地方,上面有很多各大公司的员工,程序员。你想要的应有尽有。
5. 博客园:https://www.cnblogs.com/
博客园创立于2004年1月,是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。很多早期的高质量内容都在博客园。
6. Medium:https://medium.com/
国外优质文章网站,Medium 的整体结构非常简单,容易让用户沉下心来专注于阅读。上面有很多高质量的技术文章,有很多厉害的人在上面发布内容。
7. Hacker News:https://news.ycombinator.com/news
国外优质文章网站,上面有很多高质量的技术文章,有很多厉害的人在上面分享内容。
8. GeeksforGeeks:https://www.geeksforgeeks.org/
GeeksforGeeks is a computer science portal for geeks。(感谢@三三白白的补充)
除了这些论坛,程序员还有一些必备网站:
0. Google:https://google.com
这个不用多说了吧,查资料,有问题,Google 一下。当然,能访问的人自然会用,访问不了的人,可以用必应或者百度吧。
1. 算法学习 LintCode:https://www.lintcode.com/
算法学习网站,上去每天刷两道算法题,走遍天下都不怕。
2. 算法学习 LeetCode:https://leetcode.com/
也是算法题网站,同上。
3. 算法学习 LeetCode 中文站:https://leetcode-cn.com/
这个是上面算法题网站的中文站点,英文不好的可以刷这个,英文好的推荐去刷英文网站的题目,还能提升英语能力。
4. 牛客网 — 面经和刷面试题:https://www.nowcoder.com
各个公司的面试题和面经分享,找工作前认真刷一刷,一定会有很大收获!拿到心仪的 offer!
5. Web 开发练习题:https://www.freecodecamp.org/
这是国外发起的一个 Web 开发学习的网站,从简单到深入,一步一步带你学习 Web 开发。就像一本练习册,并且当你完成相应的内容后,会得到相应的资格认证。
6. 百度前端技术学院 — 前端开发项目库:http://ife.baidu.com
学前端的看这里,百度官方推出的前端开发学习技术学院,题目从简单到困难,如果你把里面的题都做会了,找个 BAT 的前端工作不成问题的。
其他学习网站:
0. 各种编程语言,编程工具,各种轮子的官方网站
要记得,学习一门语言或者一个工具,最优质的学习网站就是他的官方网站,官方文档。
1. 菜鸟教程:http://www.runoob.com/
菜鸟教程的 Slogan 为:学的不仅是技术,更是梦想! 记住:再牛逼的梦想也抵不住傻逼似的坚持!网站包括了HTML、CSS、Javascript、PHP、C、Python等各种基础编程教程。
2. 中国大学MOOC网:https://www.icourse163.org/
中国大学MOOC是由网易与高教社携手推出的在线教育平台,承接教育部国家精品开放课程任务,向大众提供中国知名高校的MOOC课程。在这里,每一个有意愿提升自己的人都可以免费获得更优质的高等教育。
如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637 935 295,免费领取一套学习资料和视频课程哟~
推荐给前端程序员的技术、论坛、资讯网站:
- https://medium.freecodecamp.com/
- https://css-tricks.com/
- http://css-weekly.com/
- https://www.html5rocks.com/en/
- https://mobilewebweekly.com/
- http://www.echojs.com/
- http://us5.campaign-archive1.com/?u=ea228d7061e8bbfa8639666ad&id=68fee2a1f3&e=91389ff35f
- https://www.smashingmagazine.com/
- https://www.sitepoint.com/
- http://javascriptweekly.com/
- http://frontendfocus.co/
- https://frontendfoc.us/
- http://reactjsnewsletter.com/issues
- http://feeds.feedburner.com/html5rocks
推荐给前后端程序员的技术、论坛、资讯网站:
- https://hashnode.com/
- http://us4.campaign-archive1.com/?u=9735795484d2e4c204da82a29&id=0f792acd6e&e=e6bacace33
- http://rubyweekly.com/
- https://golangweekly.com/
- https://dbweekly.com/
- https://risingstack.com/
- http://nodeweekly.com/
- https://webopsweekly.com/
- https://postgresweekly.com/
- http://nodeweekly.com
推荐给前安卓程序员的技术、论坛、资讯网站:
- http://androidweekly.net/
- http://us2.campaign-archive2.com/?u=869610fc59cf83e08b6e0635a&id=6880ca6f63&e=1411ee8814
推荐给前 iOS 程序员的技术、论坛、资讯网站:
- https://iosdev.tools/
- https://iosdevweekly.com/
- https://littlebitesofcocoa.com/
- http://ios-goodies.com/
- http://digest.swiftweekly.com/
知友推荐:
1. 在线学习网站:https://www.tutorialspoint.com/
2. 算法学习和竞赛网站:http://codeforces.com/
3. 程序员问答网站:https://segmentfault.com/
4. Linux Kernel:https://www.kernel.org/
5. FCC 中文网:https://www.freecodecamp.one/
6. B 站:https://www.bilibili.com/
7. 阿里巴巴开源镜像:https://opsx.alibaba.com/mirror
8. USTC 开源镜像:http://mirrors.ustc.edu.cn/
如何学习编程?顺便介绍些好的网站相关推荐
- 学习编程和练习的必备六大网站
一.leetcode LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/leetbook/ 刷算法题目和社区讨论,竞赛与求职都结合的平台网 ...
- 学习编程有疑问?七个网站助你菜鸟变大牛
很多同学在学习编程时候会遇到各种各样的问题,这些问题需要自己去想办法解决,那么这些网站平台将会给你很大的帮助. 1.W3school 这是一个免费学习编程语言的在线学习网站,里面的知识浅显易懂,非常适 ...
- 学习编程可能会走哪些弯路,有哪些经验可以参考?
本回答是我通过学习编程过程中走过的弯路,总结出来的一些经验,供你参考.首先我要声明一点,如果你是一个初级程序员,本回答并非要让你因为可能正在犯这些错感到蓝瘦香菇,而是要让你意识到它们的存在,教你如何辨 ...
- 网上学习编程的七大趋势
随着互联网技术的不断提高,网上学习已经越来越普及了.无论是目前,还是将来,它都将会成为一种流行的学习模式.谈及编程,在Glasssdoor最近发布的一份调查报告(top 25 lucrative, i ...
- 12 个最佳的免费学习编程的游戏网站【转】
转自:http://blog.csdn.net/jxgz_leo/article/details/52767185 本文导航 -CodinGame -Code Combat -Screeps -Che ...
- 12 个最佳的免费学习编程的游戏网站
本文导航 -CodinGame -Code Combat -Screeps -Check iO -Vim Adventures -Cyber DoJo -Code Monkey -Elevator S ...
- 编程比赛 介绍 入门 及 学习路线
内容若有不足与纰漏,请多指教! 文章目录 写在前面 编程比赛介绍 蓝桥杯 天梯赛 CPC类 比赛 编程比赛要点注意 赛前 赛中 赛后 编程比赛常见术语 比赛相关 常见术语 编程 | 学习 学习 | 练 ...
- 少儿编程Scratch学习教程--Scratch介绍及参赛相关
之前写了几篇关于Scratch的使用文章.忽然想起,忘记介绍下Scratch了. Scratch是一款由麻省理工学院(MIT) 设计开发的少儿编程工具.官方网址是麻省理工学院网站的一个分支.这个软件的 ...
- 关于编程学习及面试,推荐些适合的网站,希望对现在的你有帮助!
曾经我作为一名学生,也很苦恼自己会不知道如何学习编程,自己平时总结下来了相关的学习资源,大家平时也可以养成积累的好习惯,下面是一些简单的分享,适合刚入门或者将进入职场的大家. 1.菜鸟教程 https ...
最新文章
- 【负载均衡】揭开F5 BIG-IP的神秘面纱(一)
- linux timeline
- Winform中实现双击Dev的TreeList在ZedGraph中生成对应颜色的曲线
- [Abp 源码分析]异常处理
- php去掉多字节字符,PHP 面试题 - 如果没有 mb 系列函数,如何切割多字节字符串...
- python画图删除上边框和右边框
- 用mplfinance库定制A股常用的K线、均线图
- Shellex:针对shellcode的转换与处理工具
- 小米浏览器禁止java,如何禁止小米手机浏览器中弹出窗口广告
- python项目运行的软硬件环境_开发时的软硬件环境和运行时的软硬件环境分别是什么...
- PHP对接抖音开发平台接口
- 中文论文检索证明怎么开_SCI论文检索后收录证明怎么开?
- Python实现穷举破解WiFi密码
- django相关报错知识整理
- Win10系统无法使用VGAPlayer软件播放asf格式和VGA文件
- SQLite这么娇小可爱,不多了解点都不行啊
- 关于学习的几个经典定律
- [SHOI2008] 小约翰的游戏
- 九、系统的软中断导致CPU使用率升高,我该怎么办?
- VII html+css