有一种对软件开发者的偏见是:他们都是无趣的极客,是学校里的数学天才,每天都要在计算机屏幕前花费多个小时去写代码。

没错,开发者确实会在计算机屏幕前花费多个小时去写代码。但是,每天的工作中还有很多比写代码更重要的事情。就我个人而言,开发者意味着有机会自己做出很酷的东西。

想要搞开发?开发可不像你想得那样简单。

从我写下第一行代码到现在已经过去大约七年了。经过这许多小时的练习,曾一度想过放弃,也曾经历过中断,现在我想跟你们分享一些我的经验。

别把编码当成业余爱好

首先,也是最重要的一点:如果你真的想把写代码当成事业,那这毫无疑问是正确的。我完全同意,人们不会把时间花在自己不喜欢的东西上。

但是,作为业余爱好来写代码——也就是说,只是写代码而没有任何目标或计划——不太可能带你走向你希望的职业编程道路。

此外,在遇到障碍和困难时,你会有足够的耐心来保持编码的兴趣吗?还是说可能会放弃,或者在中途停下脚步?

因此,你必须要专注于自己的热情。我很肯定所有开发者都会编码和对技术有着极大的热忱。

但是,没有实际的执行,热情就毫无用处。制定具体的目标,再加上合适的计划,才能给编程之路设置里程碑。在某个时间范围内设定一个宏伟的目标,设定每个阶段要学习的技术和技能。这样,学习编程才能成为你生活中的重要部分。

确定希望专注的技术

一旦开始认真写代码,下一步就是要对自己诚实。你想成为哪种开发者?

首先从自己最感兴趣的部分开始。你想要做用户界面,控制产品与用户交互的方式?那么你应该着重于前端技术。或者你天生不适合做设计,而更喜欢服务器上的工作?那么应该专注于后台技术。

要根据自己的兴趣确定自己想学什么,这一点非常关键。如果不能确定,可以在Google上搜索,并简单尝试一下。我们都有自己的偏好和技能,那些就是我们最擅长的东西。所以,这个问题其实没你想象的那么难。

从最简单的东西开始

刚开始时,你可能会对每个任务都感到困惑,无论任务有多难或多简单。即使是给项目选一个合适的文本编辑器,并设置好环境,都会给你带来许多意料之外的问题。

因此,如果你完全是个新手,想尝试第一种语言,我强烈推荐从最简单的开始。可以选择那些提供交互式编程环境的平台入手,如Codecademy。

我也是用这种方式开始的。这些平台能帮你专注于熟悉编程语言本身,而不用考虑环境设置等。当然稍后你会学习这些东西,但我一直认为,开始写代码不仅能让人兴奋,还可以避免让你过于疲劳。

有什么学习资源?

成为软件开发者有多种途径。可以先修一个计算机科学的学位,参加编程训练营,甚至可以自学。不论哪种方式,你都需要不断更新学习资料。由于我选择了最后一种途径,我可以分享些我找到的学习资源。

从交互式编程环境开始

作为第一步,可以从最容易理解、最容易学习的平台入手,如Codecademy。这些平台提供的环境可以让你阅读学习资料,然后利用网页上自带的编辑器直接练习所学的知识。结果也会在屏幕上立即显示。只需要免费注册,选择你想要学习的技术,输入学习计划,就可以开始学习了。

另一个对新手十分有用的资源就是freeCodeCamp。它不像Codecademy那样必须为高级课程付费(尽管这些付费课程非常有用),freeCodeCamp提供完全免费的课程和学习计划。他们甚至会在完成每个主要课程后给你发证书。

他们的教程也包括详细的学习指南、内置的文本编辑器和清晰的解释。此外,还有些项目可以让你使用学到的知识解决各种问题。

选择正确的学习资源

这个过程其实很困难,并不是因为可信的、详尽的资源太少。实际上,好的入门资源太多,很可能会让你应接不暇。选择方向很困难,因为你不太可能在每条路上都花一段时间。因此,不好的教程不仅会让你浪费时间,而且会让你丧失继续前进的热情。

关于“我该学什么”这个问题,在询问别人或者询问Google之前,一定要先问自己!为什么?因为网上有各种各样的教程——视频、电子书、教科书,还有在线或面对面的训练营。只有你自己才能判断出哪种资源能更有效地帮你学习。

就我个人而言,我喜欢看视频教程,一边看一边跟着写代码。因此我选择了视频教程作为主要的学习方式。但也许你更喜欢阅读,以便自己控制学习速度。那样你最好选择比较著名的书。

不幸的是,你也许需要结合不同的学习方法。但是,不论哪种方法你都会在Medium上花费很多时间,在这里你会发现许多最适合你的资源。

这样,就像你确定学习哪种技术一样,后退一步,仔细考虑,选择最适合自己的学习资源。一旦找到合适的资源,就可以开始学习了!

进入技术圈

如上所述,不论你选择哪种资源,你很可能都要依赖medium上的博客。这就是成为开发者的最有趣的地方。进入技术圈,就可以“在放松中学习”。

想象一下……

清晨起来你开始学习在线教程。大约一个小时的认真学习之后你决定休息一下。看一集Netflix?不。你发现你不想在看电视上花费一个小时,因此你打开了YouTube,决定花30分钟看一场关于编程技术的演讲。

你观看的视频有几十万的点击量。演讲的人正在就Grid布局讨论CSS的未来发展。太有意思了!“记住或翻查Bootstrip网格类文档进行布局的时代结束了”,你喃喃自语。看看这个究竟怎么用!

你Google了CSS Grid,然后阅读了freeCodeCamp上的一篇博文。感谢这篇博文,你学习了一些要点,然后迫不及待地打开VSCode想要尝试一下。太好用了!咦,这里不太对。然后你在StackOverflow上搜索了一些问题,又在CSSTricks上看了更多的教程。然后代码终于可以正确工作了。

午饭时间,你打开播客,收听freeCodeCamp上的最新更新,是关于一个自学成才的开发者找到第一份技术工作的故事。午饭之后,你决定继续Udemy上的React教程。你突然发现一个不太明白的问题,而Q&A部分的内容并不能解答。

卡了半个小时之后你觉得累了,于是你决定暂时放弃,希望能以后再解决。然后你去浏览Codeburst上的开发者社区,看看那些技术大拿们分享的技巧和技术趋势。这个社区里的人们都在分享自己的知识并与其他人讨论。

你开始思考:“也许我应该写一点东西,不论是我自己的观察也好,还是我学到的东西也好……然后与这些人分享。”于是你打开Google doc,写下了下面的文字:“你想成为开发者吗……”?

这个故事是否对你有一点打动?如果是的话,那你还等什么?赶快跳进技术圈,进入这个所有人都在开发技术应用,让世界变得更美好吧。

练习,练习,再练习

好,现在你大概知道从哪里开始了,那么最好是现在就开始。但是,熟悉一项技术需要很多时间。想要精通,则需要大量的工作。不付出汗水和泪水,就不可能填补新手和有经验的开发者之间的空白。

换句话说,要想熟练掌握一门编程语言,就要付出许多个小时甚至多年的练习。那么该怎样做呢?

跟着教程做东西,途中遇到的bug要积极地在Google上或StackOverflow上查找;

每天有一段专门的时间写代码。

如果你感到累了,就休息下到处转转,看看论坛和各个平台上的技术领袖们和经验丰富的开发者们分享的技术新闻。基本上要让自己身处技术圈中。

记住,这是朝着成功阶梯迈出的重要的一步。你付出的努力越多,你的自信和热情就会越高。只需要记住,这件事没有结晶。没有任何语言或库能够帮你一夜成功。不断尝试,从失败中学习,积极努力,遵循计划,相信自己。

也许美梦成真的时刻就在前面!

微信公众号:C语言编程学习基地,其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C语言C++交流QQ群951726787,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。

程序人生丨听说程序员是相当就能当的?BAT大牛当场就不乐意了!的更多相关文章

  1. 掌握NIO,程序人生

    就像新IO为java带来的革新那样,让我们也开启一段新的程序人生. 关键字:NIO,BIO,伪IO,AIO,多路复用选择器,通道,缓冲区,jdk研究,回调函数,高并发 java.nio 概述 历史背景 ...

  2. Android群英传帝落篇——程序人生,路漫漫其修远兮,吾将上下而求索!

    Android群英传帝落篇--程序人生,路漫漫其修远兮,吾将上下而求索! 当写这篇博客的时候,自2016-02-22到现在5.2号,一晃眼,也㓟两个多月就过去了,我才将这本书看完,虽然写笔记花了很大的 ...

  3. IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题

    程序员的工作不是写程序,而是写程序解决问题. --- 某不知名程序员 我们每天都在写代码,有些代码有结构性的相似,但不是所有的代码都可以被抽成方法.在这种情况下,我们应该考虑使用template的方式 ...

  4. 微信小程序将带来web程序员的春天!

    微信之父张小龙在年初那次演讲中曾表示:“我自己是很多年的程序员,我觉得我们应该为开发的团体做一些事情.”几个月后,微信正式推出微信应用号(即微信小程序)在互联网中掀起又一波热潮. 过去,对于很多开发者 ...

  5. 深入理解计算机系统大作业——程序人生P2P

    程序人生P2P 前言 经过一个学期的快乐学习(折磨),计算机系统终于结课了,自认为对于计算机系统算是有了粗浅的理解.为了庆祝结课,顺带总结自己的学习经历(只是为了完成大作业),便通过一个简单的程序he ...

  6. 哈工大 计算机系统 大作业 程序人生-Hello’s P2P

    计算机系统 大作业 题 目 程序人生-Hello's P2P 专 业 计算机 学 号 班 级 学 生 指 导 教 师 计算机科学与技术学院 2021年6月 摘 要 本文主要通过分析hello这个程序的 ...

  7. 微信小程序转百度小程序代码

    听说百度小程序开始出现手机端搜索流量,作为SEO一员,必须搞他.但是又奈何之前做的都是微信小程序,所以用php写了一个微信小程序转百度小程序代码. 修改文件后缀名 .wxml转换为.swan .wxs ...

  8. 微信小程序代码大全 - 小程序开发福利

    小程序QQ交流群:131894955 小程序开发文档(Wepy) 小程序商城源码下载(weixin-app-shop) 小程序官网源码下载(weixin-app-cms) 微信管家平台JAVA版开源下 ...

  9. 使用未付费的账号真机调试 iOS 程序,过几天后程序一打开就会闪退

    使用未付费的苹果开发者账号真机调试 iOS 程序,过几天后程序一打开就会闪退.   解决办法: 删除 Provisioning Profile,重新配置一次. 终极解决办法:花钱购买苹果开发者账号. ...

随机推荐

  1. 洛谷CF997A:Convert to Ones

    温馨提示: 本题适合先思考再看题解,相信各位神犇都能轻轻松松过掉它. 题目链接: https://www.luogu.com.cn/problem/CF997A 分析: 首先要读懂题,to ones, ...

  2. LeetCode 哈希表 380. 常数时间插入、删除和获取随机元素(设计数据结构 List HashMap底层 时间复杂度)

    比起之前那些问计数哈希表的题目,这道题好像更接近哈希表的底层机制. java中hashmap的实现是通过List<Node>,即链表的list,如果链表过长则换为红黑树,如果容量不足(装填 ...

  3. 不用加减乘除做加法(剑指offer-48)

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 题目解析 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2. 第二步:计 ...

  4. 在java中捕获异常时,使用log4j打印出错误堆栈信息

    当java捕获到异常时,把详细的堆栈信息打印出来有助于我们排查异常原因,并修复相关bug,比如下面两张图,是打印未打印堆栈信息和打印堆栈信息的对比: 那么在使用log4j输出日志时,使用org.apa ...

  5. Python 列表生成式 生成器

    [x for x in os.listdir("F:\XXX")] 生成器(x * x for x in range(10)) 如果列表元素按照某种算法推算出来,那我们就可以在循环 ...

  6. nuxt的使用中碰到的问题

    使用npm run generate生成静态页面部署 如果不是部署在域名的根目录下,则需要在nuxt.config.js中添加 // nuxt.config.js export default { r ...

  7. Azure Web App (三)切换你的Net Core Web 项目的数据库连接字符串

    一,引言 上一篇文章讲到今天我们演示了一下,如何在Web App中创建 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到创建的Web App中创建的新的部署槽位中, ...

  8. Python Ethical Hacking - MAC Address & How to Change(3)

    SIMPLE ALGORITHM Goal  -> Check if MAC address was changed. Steps: 1. Execute and read ifconfig. ...

  9. SQL数据单条转多条(Lateral View)

    Lateral View和split,explode等UDTF一起使用,它能够将一行数据拆成多行数据,并在此基础上对拆分后的数据进行聚合. 单个Lateral View语句语法定义如下:lateral ...

  10. 使用jwt进行token认证

    简单说明:最近在搞权限这一块的东西,需要用到jwt进行token认证,才有了如下的demo演示   具体细节可以看gitbug,噗,不是bug是hub  github地址:https://github ...