给新手程序员的一些建议

文:部分整理于网络

解决问题的途径比得到结果更重要

解决问题是一个通用的能力,本应在学生时代习得,若是不擅长解决问题,怕是短时间内很难提升,但在一个具体的领域里,往往「途径」更加重要。

当你在一个论坛或社区提出一个问题时,有些惜字如金的大牛会直接丢给你一个链接,不会多留下哪怕半个字,不要小看一个链接,它可能比直接告诉你答案更有价值。

当你进入一个新的领域,遇到问题时往往不知道应该去哪寻找答案,这时候你会想如果有一个网站,列出了作为新手可能遇到的一切问题该多好。但世上没有这么好的事情,往往这些问题和解答分散在不同的网站上 —— 从这个链接就可以点过去。

不要相信一句话就可以描述的真理

网络上的大牛经常提出提出一些简洁有力的口号,例如「抽象可以解决计算机领域的一切问题」、「好的代码不需要注释去解释」、「动态类型语言才能提高编码效率」、「PHP 是世界上最好的编程语言」等等。

并不是说这些观点是错误的,但它们就像「苹果总是会落到地上」这种简单的理论一样,描述的情况是片面的,而非普适的。有些结论是前辈们花了大量的时间和精力探索出来的,但光知道一个结论对你的编程是没有太多指导意义的,更多的细节隐藏在得出这个结论的过程中。

所以如果提出这些观点的人没有深入介绍、你也不打算自行了解,索性不如忘掉这些话。

想清楚再动手写代码

刚入行的新手,不要因为展示自己的能力,拿到需求就迫切的开始上手写代码,想清楚再写可以帮你事半功倍!

深入了解你使用的工具

在编程的过程中,我们需要借助大量的工具来完成版本控制、调试、重构、构建和部署等工作。包括你的编辑器(IDE)和操作系统都是必不可少的工具,选择一组好用的工具,并且不断地学习和配置它们,这样才能逐渐提高工作效率。

每个人在选择工具的过程中都会掺杂大量的个人喜好,但我建议大家在选择工具时考虑下面几个因素:是否是免费软件或开源软件、是否有公司在维护、是否有大量用户和活跃的社区、是否支持插件或拓展、是否支持多种平台。

能运行的代码只是最基本的要求

当一个程序可以运行起来了,不要高兴得太早,这只是一个开始。例如你是否考虑到了各种边界情况;当程序收到非预期的输入会发生什么;所依赖的外部服务出现异常会怎样,发生错误时是否能从日志中还原出现场;如果程序处理的数据量或运行时间提高几个数量级会发生什么;构建、测试和部署过程是否做到了自动化;代码是否为将来的修改做好了准备等等。

写博客是一个很好的习惯

不要以为自己写的博客没有人看,其实博客不仅仅是用来分享的,同时也是用来作笔记,当你在开发的过程中,遇到的各种各样的问题,写一篇博客记录下来解决的办法,下回再遇到时就可以迅速解决。

新学会的知识点记录到博客上,下回再复习的时候也会很方便。

先精通一种语言,再广泛涉猎

很多新手会各种编程语言搞得头晕目眩,不知道先从哪个学起,索性不如左右开弓,同时学习。

一旦你这样做了就会发现很难将同时学习的两种语言的知识区分开,因为它们实在太像了。但如果你先精通一门语言,了解了它每个语法的工作方式之后再学习其他语言就很轻松了,因为你对已掌握的语言已经足够了解,不会和新语言混淆。而且你会不由自主地用已掌握的语言去和新语言比较,更容易发现它们之间的差异,发现各自语法的内在逻辑。

原文发布于微信公众号 - 轮子工厂(Programmer-ing)

原文发表时间:2018-05-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

混合云使用不能盲目:学习最佳实践是王道

多年来,企业一直享受着混合云带来的益处。然而,他们同时也忍受着不断增长的痛苦,混合云的新人可以从他们的前辈所犯的错误中学习。 混合云的采用率正在上升。很多组织看...

366150
来自专栏CSDN技术头条

十一问MongoDB CTO,谈NoSQL人气王的扩展、事务及运维

【编者按】在“MongoDB成为首位10亿美元初创”一文中,我们曾介绍过这个千禧年的宠儿——NoSQL领域的人气王,只通过6年时间就将公司市值发展到12亿美元,...

199100
来自专栏Danny的专栏

大神级程序员和普通程序员的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

13320
来自专栏小程序

小程序,又一个营销趋势,传统企业还不跟吗?

不知道微信小程序?那你真的out了!微信小程序作为微信推出的强大功能,微信小程序在整个互联网中造成了轩然大波!而基于小程序的各种优点,众多企业和商家开始注册小程...

44390
来自专栏Java技术栈

DevOps到底是什么鬼?DevOps介绍及工具推荐。

什么是DevOps DevOps是Development和Operations的组合,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营...

40350
来自专栏纯洁的微笑

HRMS(人力资源管理系统)-SaaS架构设计-概要设计实践

https://www.cnblogs.com/hegezhou_hot/p/9753733.html

56510
来自专栏机器之心

观点 | PHP or Python如何选择?或许你应该考虑一下这三个问题

选自Hackernoon 机器之心编译 参与:黄小天、李亚洲 2017 年可谓是网页应用与 API 之年,开发者不用每次重新发明轮子,而是利用脚手架和第三方库就...

33180
来自专栏云计算D1net

企业上云:可get这几种安全云网络服务

企业云部署已经很快地从小规模应用(如短期项目或测试与开发环境)发展为支持更为重要的工作负载的复杂的大规模应用。随着云服务变得越来越多样化,企业对于云模型的满意水...

38160
来自专栏云计算D1net

什么是开发混合云应用的核心因素

虽然为混合云部署开发应用并不是某种黑暗魔法,但是对于很多企业来说,这还是一项具有一定神秘性的工作。 可以想象,任何设想进行混合云开发的用户最终都需要完成很多个这...

38870
来自专栏云计算D1net

混合云应用对于企业的意义

虽然为混合云部署开发应用并不是某种黑暗魔法,但是对于很多企业来说,这还是一项具有一定神秘性的工作。 可以想象,任何设想进行混合云开发的用户最终都需要完...

26430

扫码关注云+社区

领取腾讯云代金券