有一种对软件开发者的偏见是:他们都是无趣的极客,是学校里的数学天才,每天都要在计算机屏幕前花费多个小时去写代码。
没错,开发者确实会在计算机屏幕前花费多个小时去写代码。但是,每天的工作中还有很多比写代码更重要的事情。就我个人而言,开发者意味着有机会自己做出很酷的东西。
想要搞开发?开发可不像你想得那样简单。
从我写下第一行代码到现在已经过去大约七年了。经过这许多小时的练习,曾一度想过放弃,也曾经历过中断,现在我想跟你们分享一些我的经验。
![](https://upload-images.jianshu.io/upload_images/19341983-e32b884571d32db3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
别把编码当成业余爱好
首先,也是最重要的一点:如果你真的想把写代码当成事业,那这毫无疑问是正确的。我完全同意,人们不会把时间花在自己不喜欢的东西上。
但是,作为业余爱好来写代码——也就是说,只是写代码而没有任何目标或计划——不太可能带你走向你希望的职业编程道路。
此外,在遇到障碍和困难时,你会有足够的耐心来保持编码的兴趣吗?还是说可能会放弃,或者在中途停下脚步?
因此,你必须要专注于自己的热情。我很肯定所有开发者都会编码和对技术有着极大的热忱。
但是,没有实际的执行,热情就毫无用处。制定具体的目标,再加上合适的计划,才能给编程之路设置里程碑。在某个时间范围内设定一个宏伟的目标,设定每个阶段要学习的技术和技能。这样,学习编程才能成为你生活中的重要部分。
![](https://upload-images.jianshu.io/upload_images/19341983-900a1a1fe5e46cac.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
确定希望专注的技术
一旦开始认真写代码,下一步就是要对自己诚实。你想成为哪种开发者?
首先从自己最感兴趣的部分开始。你想要做用户界面,控制产品与用户交互的方式?那么你应该着重于前端技术。或者你天生不适合做设计,而更喜欢服务器上的工作?那么应该专注于后台技术。
要根据自己的兴趣确定自己想学什么,这一点非常关键。如果不能确定,可以在Google上搜索,并简单尝试一下。我们都有自己的偏好和技能,那些就是我们最擅长的东西。所以,这个问题其实没你想象的那么难。
从最简单的东西开始
刚开始时,你可能会对每个任务都感到困惑,无论任务有多难或多简单。即使是给项目选一个合适的文本编辑器,并设置好环境,都会给你带来许多意料之外的问题。
因此,如果你完全是个新手,想尝试第一种语言,我强烈推荐从最简单的开始。可以选择那些提供交互式编程环境的平台入手,如Codecademy。
我也是用这种方式开始的。这些平台能帮你专注于熟悉编程语言本身,而不用考虑环境设置等。当然稍后你会学习这些东西,但我一直认为,开始写代码不仅能让人兴奋,还可以避免让你过于疲劳。
![](https://upload-images.jianshu.io/upload_images/19341983-55ea6cd76fe423cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
有什么学习资源?
成为软件开发者有多种途径。可以先修一个计算机科学的学位,参加编程训练营,甚至可以自学。不论哪种方式,你都需要不断更新学习资料。由于我选择了最后一种途径,我可以分享些我找到的学习资源。
从交互式编程环境开始
作为第一步,可以从最容易理解、最容易学习的平台入手,如Codecademy。这些平台提供的环境可以让你阅读学习资料,然后利用网页上自带的编辑器直接练习所学的知识。结果也会在屏幕上立即显示。只需要免费注册,选择你想要学习的技术,输入学习计划,就可以开始学习了。
另一个对新手十分有用的资源就是freeCodeCamp。它不像Codecademy那样必须为高级课程付费(尽管这些付费课程非常有用),freeCodeCamp提供完全免费的课程和学习计划。他们甚至会在完成每个主要课程后给你发证书。
他们的教程也包括详细的学习指南、内置的文本编辑器和清晰的解释。此外,还有些项目可以让你使用学到的知识解决各种问题。
![](https://upload-images.jianshu.io/upload_images/19341983-ad99396167ef0aaf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
选择正确的学习资源
这个过程其实很困难,并不是因为可信的、详尽的资源太少。实际上,好的入门资源太多,很可能会让你应接不暇。选择方向很困难,因为你不太可能在每条路上都花一段时间。因此,不好的教程不仅会让你浪费时间,而且会让你丧失继续前进的热情。
关于“我该学什么”这个问题,在询问别人或者询问Google之前,一定要先问自己!为什么?因为网上有各种各样的教程——视频、电子书、教科书,还有在线或面对面的训练营。只有你自己才能判断出哪种资源能更有效地帮你学习。
就我个人而言,我喜欢看视频教程,一边看一边跟着写代码。因此我选择了视频教程作为主要的学习方式。但也许你更喜欢阅读,以便自己控制学习速度。那样你最好选择比较著名的书。
不幸的是,你也许需要结合不同的学习方法。但是,不论哪种方法你都会在Medium上花费很多时间,在这里你会发现许多最适合你的资源。
这样,就像你确定学习哪种技术一样,后退一步,仔细考虑,选择最适合自己的学习资源。一旦找到合适的资源,就可以开始学习了!
进入技术圈
如上所述,不论你选择哪种资源,你很可能都要依赖medium上的博客。这就是成为开发者的最有趣的地方。进入技术圈,就可以“在放松中学习”。
![](https://upload-images.jianshu.io/upload_images/19341983-853209a4921c3c90.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
想象一下……
清晨起来你开始学习在线教程。大约一个小时的认真学习之后你决定休息一下。看一集Netflix?不。你发现你不想在看电视上花费一个小时,因此你打开了YouTube,决定花30分钟看一场关于编程技术的演讲。
你观看的视频有几十万的点击量。演讲的人正在就Grid布局讨论CSS的未来发展。太有意思了!“记住或翻查Bootstrip网格类文档进行布局的时代结束了”,你喃喃自语。看看这个究竟怎么用!
你Google了CSS Grid,然后阅读了freeCodeCamp上的一篇博文。感谢这篇博文,你学习了一些要点,然后迫不及待地打开VSCode想要尝试一下。太好用了!咦,这里不太对。然后你在StackOverflow上搜索了一些问题,又在CSSTricks上看了更多的教程。然后代码终于可以正确工作了。
午饭时间,你打开播客,收听freeCodeCamp上的最新更新,是关于一个自学成才的开发者找到第一份技术工作的故事。午饭之后,你决定继续Udemy上的React教程。你突然发现一个不太明白的问题,而Q&A部分的内容并不能解答。
卡了半个小时之后你觉得累了,于是你决定暂时放弃,希望能以后再解决。然后你去浏览Codeburst上的开发者社区,看看那些技术大拿们分享的技巧和技术趋势。这个社区里的人们都在分享自己的知识并与其他人讨论。
你开始思考:“也许我应该写一点东西,不论是我自己的观察也好,还是我学到的东西也好……然后与这些人分享。”于是你打开Google doc,写下了下面的文字:“你想成为开发者吗……”?
这个故事是否对你有一点打动?如果是的话,那你还等什么?赶快跳进技术圈,进入这个所有人都在开发技术应用,让世界变得更美好吧。
![](https://upload-images.jianshu.io/upload_images/19341983-ce359dfe31c6e268.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
练习,练习,再练习
好,现在你大概知道从哪里开始了,那么最好是现在就开始。但是,熟悉一项技术需要很多时间。想要精通,则需要大量的工作。不付出汗水和泪水,就不可能填补新手和有经验的开发者之间的空白。
换句话说,要想熟练掌握一门编程语言,就要付出许多个小时甚至多年的练习。那么该怎样做呢?
跟着教程做东西,途中遇到的bug要积极地在Google上或StackOverflow上查找;
每天有一段专门的时间写代码。
如果你感到累了,就休息下到处转转,看看论坛和各个平台上的技术领袖们和经验丰富的开发者们分享的技术新闻。基本上要让自己身处技术圈中。
记住,这是朝着成功阶梯迈出的重要的一步。你付出的努力越多,你的自信和热情就会越高。只需要记住,这件事没有结晶。没有任何语言或库能够帮你一夜成功。不断尝试,从失败中学习,积极努力,遵循计划,相信自己。
也许美梦成真的时刻就在前面!
微信公众号:C语言编程学习基地,其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C语言C++交流QQ群951726787,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。