不会编程,别说我认识你

作者/ 洞唐Coder

排版/ 洞唐Coder

文章字数 / 3778

阅读时长 / 5分钟

身边经常有一些朋友问我,到底能不能自学编程?以我个人为经验我可以很负责任地告诉你。答案是:绝对可以。我接触到的一些程序员跟我一样,其实有很多都不是软件工程专业毕业的。

他们的上一份工作有些是会计师,设计师或者是其他领域的工程师。甚至有很多刚毕业的非软件工程系大学生也都上网自学,像我自己就是自学成才的。

当然,不是半路出家的程序员就要比科班出身的计算机专业毕业的程序员更好。在大学里学的不仅仅是知识本身,重要的是得到终身学习的自驱力和习得文化的熏陶。这一点,我有空会拿出来仔细讲讲。

科班出身的程序员们显然可以接触到圈子本身,不要忘了人际关系(划重点)也是我们在社会上打拼非常重要的环节。这些都不能直接用数字去衡量的,我见过一些科班出身的程序员所以我非常清楚这一点。

那下面我就开始分享6大自学编程的绝招。✅

Tips#1

为什么学编程?

每一个想学编程的人都应该思考一下为什么要学编程?

是觉得编程很酷?或是你想转行?还是想搞一个副业赚钱?

不管你出于什么原因,都应该静下心来认真思考一下。因为学习编程绝不是一时兴起的,而是需要耐心和坚持。我会在视频的最后和大家分享怎么做到坚持和不放弃。

搞明白你真正想要的,是什么?如果你分不清你想去学习编程这件事是出于一个什么样的想法时,请扪心自问“学习编程到底是我做事的手段还是我最终的目的?”这个很重要,我不希望你浪费时间在毫无意义的事情上。

举个例子,你想上架一款能帮助用户解决某类问题的APP到Apple App store或者Google Play Store,你就需要去学习怎么去制作手机应用程序。我们都知道iPhone和安卓手机的程序开发是有区别的,所以你得选择合适的编程语言。

假设你之前学的是网页编程,那网页编程的知识就不是非常适合你突然转去做手机App了。之后你又得重新去学习怎么制作手机App,这会浪费你宝贵的时间。人生苦短,学会合理分配时间也是必备的技能啊!

当你有了学习的目的,就去挑选适合自己的编程语言吧。你就可以针对自己的职业规划去挑选适合你的一些编程课或者是查阅相关的书籍

Tips#2

不要犹豫你要学哪一种编程语言

因为不管你怎么选,任何一门编程语言都有它的优势和劣势。

我只能说没有最好的语言,只有更适合你的语言。关于网络上时常出现的一些“什么是最好的语言”这样的话题争议时,当搞笑段子看就可以了。不要过于较真。

对于不同的应用场景,你要选择的编程语言也不一样。如果你想搭建一个动态网站,你可以选择JavaScript、Python、Ruby或者PHP这样的脚本型编程语言。这类编程语言结构相对简单一点,可以在短时间内上手。

如果你想从零开发一款游戏引擎或者操作系统,从编译型语言C或者C++入手就非常高效了。这类语言除了高效其次就是给程序员提供了灵活性能深度优化程序的质量。但也就是这样的灵活性,会要求程序员对编程语言的熟练度会更为苛刻。

简单举个例子,脚本型的语言就像特斯拉汽车,你只需踩油门就可以了。但编译型的语言就像开其他普通的车,不仅要观察路况还要付出大量保养的费用,保养不好的话车辆还会提前几年报废。所以用起来也相对复杂一点。

学习编程语言,有两种模式你可以参考。横向或者纵向学习。

什么是横向学习?在同一类型的编程语言里学习就是横向学习。

像脚本类型的语言中你可以先开始学Python,搞清楚什么是Python后就可以继续学习其他的脚本型语言了。

编程语言学起来其实真的不难,只要你学会了其中一种,就可以触类旁通,再学习其他语言就不难了。因为这些语言可以互相借鉴又像是在基础上再优化的。

纵向学习就是先易后难,比如说先去学习脚本型的语言,然后再去学习编译型的语言。

Tips#3

为什么做笔记?

不论你用纸质或是电子笔记本来做记录,我都非常建议你在学习过程中一定要做好笔记。这是到达你编程学习目的的重要手段之一。

做笔记的好处有以下几种:

把你学到的新东西立刻记下,因为这样能增强你对这个新知识的记忆

埋下记忆点,便于查漏补缺。因为学习编程要记录的东西真的是太多了,你可能现在都把一个月前学习的东西都忘光了。这时候笔记就能帮你温故而知新。

你可以在笔记里用文字记录你的学习过程,也能通过画(思维导图)脑图去整理知识点的思路。我个人经常使用用Xmind来做笔记,Xmind是一款跨平台的软件。内容可以同步到手机和电脑,还支持离线编辑。

洞唐建议你使用那些能把内容同步到云端的笔记软件

当然除了Xmind,也有其他优秀的一些笔记软件。如微软PC自带的Notpad或者是Microsoft Office等,但洞唐都建议你使用那些能把内容同步到云端的笔记软件如Google Docs、Evernote,这样你的笔记就不容易丢失了。

如果你能养成写作的习惯,那就更好了。因为写一篇文章需要你先整理这些思路,确认这些知识点是对的。为了确认这些知识点,你必须主动搜集更多的信息去验证你的逻辑是否立得稳。这样你就可以从中学习更多的知识,等你发布你的文章后,如果有人给你反馈或建议,你也能从中受益。

Tips#4

学会求助

在学习编程的路上,你不应该是孤独的。

如果你身边有程序员朋友,你就可以直接向他们请教。但在大多数情况下,借助搜索引擎Google或者头条搜索就可以帮你解决编程上遇到的问题。作为初学者,你不会是第一个遇到类似问题的人。所以搜索引擎基本上都可以帮助你解决90%的问题,这些问题在Github、StackOverflow、Reddit、segmentfault里有答案。

洞唐在视频中提到Github、StackOverflow、Reddit、segmentfault

这些平台里的程序员都很活跃也很乐意去帮助别人。

StackOverflow堆栈溢出 是一个科技Q&A问答的平台、

Github是全球最大的源代码托管服务商(大部分开源项目都在里面设立代码托管)、Reddit是类似于知乎的问答社区

如果你一遍遍去搜索,都没有找到答案。那么在以上几个平台去提问,看看其他的程序员能不能帮你解决。但问题是,你必须耐心等待别人的回复(因为程序员们可能都会比较忙,义务性的回复就不要太过于纠结了。记住,千万不要对热心回答你问题的网友无理取闹。)必要情况下可以做悬赏令,对回复耐心的且有据可查的回答给予一些红包打赏这样你可以更快获取你想要的同时也节约了宝贵的时间。

Segment Fault主要针对中国用户,与StackOverflow差不多。


在视频最开始我就答应你

洞唐会无私分享编程干货

希望可以让你少走弯路

以最快的速度上手编程

接下来,我就要和大家分享学好编程最重要的一点就是:坚持。

Tips#5

坚持100个小时

拒绝嘴炮,从自己做起。实践比什么都重要,编程是很看重实践的。不写代码,你根本学不到编程思维,所以我诚恳建议你每天写一个小时的代码。

然后持续100天。当你持续100天之后,你会觉得一天3个小时其实都不够用。

在学习编程的路上,你不应该是孤独的。千万不要一个人去做,一定要和别人多交流。

杨友三《集体智慧》

杨友三老师在《集体智慧》一书中提到过,信息只有流通起来才有价值。一个人闭门造车,一是进度很慢,二是特别容易放弃。该怎么解决呢?洞唐给你三个建议:

01.开通一个社交平台账号

每日分享你学习的知识点,在知识点里加#100DaysOfCode的话题标签。这是一个叫Kallaway的程序员推广的全球性活动,100DaysOfCode的宗旨就是想让学编程的人养成每天都写代码的习惯。

#100DaysOfCode挑战赛的官方网站

02.开通Github,上传你每天写的代码

遇到问题,可以直接把链接发给其他的程序员。让别人可以直接访问你的代码。Github里的代码也能当作一个笔记,把你的成果记下来。随着时间的推移,你的代码能力会显著提升有可能还会帮助到其他程序员。

汉传佛教八宗之祖、后凉国师鸠摩罗什在翻译《妙法莲华经》中说:“乃至童子戏,聚沙为佛塔。”所以说想要成为编程大佬,就必须从编程菜鸟开始,现在就去注册Github吧。(要牢记呀:不积跬步,无以致千里;不积小流,无以成江海。)

开源项目并不是特指那种百万用户级别的大项目,你也可以先从小小的代码仓库开始。如果你已经是Github的老用户了,记得在视频下方留言说说你的心得体会给大家一个参考吧。

03.参加线下的程序员聚会

你可以在开发者大会,欣赏资深程序员的代码与对方交流。或是认真聆听某互联网头部企业的员工分享的一些宝贵的经验,这里推荐你去硅谷、班加罗尔或北京中关村的咖啡店去找人聊聊。你都能从他们身上学习很多有用或者是你从来没有想到过的知识。

04.把你学会的东西再教给别人

为了不会教坏别人,那就主动承担起自己的责任吧。这不仅仅是内化知识,当老师能带给你一种成就感。这会极大地激励你。学习一下Linux开源精神吧,要知道Google Android就是基于Linux而开发的。

Tips#6

用软硬件结合的方式去学习

如果你还是在校学生或是还没有明确自己学习编程的目的,只是想把编程作为自己的个人爱好而已。那么洞唐就强烈建议你去使用MIT麻省理工学院“终身幼儿园团队”(Lifelong Kindergarten Group)开发的Scratch入手。

Scratch通过Code Clubs在英国和美国流行。Scratch被用作入门语言,是因为创建有趣的程序相对容易,并且学到的技能可以应用到Python和Java等其他编程语言中。

Scratch由MIT麻省理工学院“终身幼儿园团队”开发

超简洁的操作页面让敲代码这件事极大降低了门槛,友好的开源让国内也出现了诸如Mind+、kitten等图形化编程社区。丰富的扩展包也增强了Scratch的可玩性,增加了Micro:bit、Lego WeDo 2.0、Lego Mindstorms EV3、lego SPIKE等硬件的扩展。甚至,你还可以使用JavaScript创建自己的 Scratch 3.0 扩展。

大家如果喜欢我的视频或文章

请给我一键三连关注我的自频道 【你的洞唐 有点东西】

(0)

相关推荐