程序员

注册

 

发新话题 回复该主题

不会吧不会吧真的有人认为程序员很轻松么 [复制链接]

1#

全文共字,预计学习时长11分钟

图源:unsplash

你觉得编程是一份有压力的工作吗?很多人不这么认为,在一些人眼里,程序员只需要坐在电脑前打字,与医药、银行或会计行业相比,编程既不面临生死攸关的难题,也无需承担重大责任。

但事实证明编码焦虑是真实存在的。我发现许多学生在工作一个多小时后便无法集中注意力,在技术行业找工作的压力让他们筋疲力竭。或许真的有些天赋异禀的人把敲代码当成打游戏,但这种看法其实更多来自不明就里的外行人。你真的有必要学习一些技巧,在必要的时候对抗编码焦虑。

为何编程学习者压力山大?

首先,我们需要深入了解一下造成技术学习者压力的主要原因。我将造成程序员们焦虑的原因概括为三点:

·骗子综合征。程序员的平均年薪相当高(据Payscale调查,平均年薪为8.6万美元),很多开发人员认为他们的能力与薪资不匹配。团队工作同样让人倍感压力,你总会接触到更聪明、更精通技术的同事,他们有远见,注重细节。上述种种让软件开发人员妄自菲薄,担心会被人认为是冒牌货,倍感压力。

·并非“真实的程序员”。如果你对技术的兴趣由来已久,那么对“真实的程序员”原型一定不陌生。你经常可以在Facebook群组、Reddit或StackOverflow上看到这些程序员讲述自己有多勤勉工作,几乎不在意周末或业余时间。

图源:unsplash

外界普遍认为程序员就像工作机器,以至于初学编程者开始怀疑自己:“我无法连续编码8小时,或许软件开发这一职业并不适合我?”斯坦福的一项研究显示,过度工作只会适得其反,每周工作40小时的员工,其工作效率是每周工作60小时的员工的三倍。

·入行太晚。尽管在我看来只要渴望学习,渴求汲取新技术,编程就无年龄限制,但我的一些学生并不这么认为。任何人在听到14岁天才AI工程师的故事都会感到威胁且受到打击。30岁左右的编程学习者在感受到年轻编程天才的威胁后就开始低估自己的能力,不敢要求更高的薪水。

如果你也在和这些问题做斗争,不要让自己陷入这些情绪里,你得积极主动地面对编码焦虑,提高学习效率。

轻松学习编程的4个技巧

如何让学习编码变得妙趣横生,让人不断学习?如何让自己不因同龄人的成功与失败而心生嫉妒,因此泄气?以下是我的一些经验见解。

1.选择一门主要编程语言

是精通一门编程语言更好,还是成为众多中级程序员中的一员更好,这是软件开发中常见的争论。我个人不介意使用多种语言,但我认为每个程序员都应熟练掌握一种技术。

想想我们说的语言,掌握两三种甚至五种语言的都大有人在。但是,大部分人只精通一种(最多两种)语言,即你思考所用的语言,同朋友聊天所用的语言。在这一点上,编程和语言是相似的,你可以学习多种语言,但得确保自己作为程序员只用一种语言“思考”。

作为一名编程学生,起步阶段应该学习哪种语言呢?从学习资源的数量、就业市场和技术的通用性考虑,我建议编程学员从Java入手。

·Java工作机会遥遥领先。根据全球最大的招聘网站Indeed,Java、Python和Javascript是首选的编程语言,有着大量职位空缺。

·Java教学资源丰富。初学者常常会因为找不到可信任的学习资源而手足无措,为了确保自己学习的编程语言达到最高行业标准,看看顶尖的大学和学习实践是很有帮助的。

如果你想用学术材料学习,那么学习Java是一个明智的选择,因为许多国家排名前10的计算机科学专业都选择Java作为入门课程的语言(Python数量较少,有13个可用程序)。

·Java开发者薪酬不菲。确保与你所学的编程语言相关的工作报酬丰厚至关重要,薪酬与压力直接挂钩。Java是计算机科学研究中收入最高的领域之一,根据PayScale调查显示,Java开发人员的平均年薪为美元。

2.规划自身教育

刚开始学编程的程序员,往往不在其基本概念上下足功夫,就开始学习编程语言。他们太过依赖在网上查找的所有学习内容,这样会直接一塌糊涂。大多数初学者过早开始接触高级概念,很快就因语言太过复杂和自身缺乏进步而受挫。

如果你想在最短时间内成为一名成功的程序员,规划好学习曲线至关重要。那么怎样创建你能真正坚持的高效课程?

图源:unsplash

首先按照复杂度递增的顺序,写下你想学的语言的概念。Java列表如下:

·基本Java语法

·主要面向对象概念

·集合类以及数据结构

·数据库

·并发性和多线程

·JVM与记忆管理

·Java生态水平

将这些概念分解为更小的模块,把它作为每日学习的主题。以Java为例,下面是Java语法概念的分解情况:

·变量

·数据类型

·If-else计算符

·循环

·连续语句和中断语句

由于这篇文章不专讲Java,在这里我就不列出完整课程,网上有许多学习路线图可供自行查看。

为每个模块设立清晰的截止日期,这样便能对完成部分课程所需时间有切实的了解。切忌低估——编程语言概念比你想象的更为复杂。最好设置上限,不要进行一连数小时的压力练习。

3.收集正确资源

对于程序开发学生来说,必须应用在现实中学习所获得的知识是一个主要的崩溃原因。Freecodecamp论坛使用者完美总结出这一焦虑:“每次编程的时候,我就担心有一天我会被其他专业程序员面试。”

图源:unsplash

如果你也害怕自己不具有在工作面试中脱颖而出的特质,那么罪魁祸首可能是你学习的资源。虽然书籍和视频课程对于学习语言本质很重要,但实践同样甚至更重要。在与初级Java开发人员交谈时,我通常建议使用以下资源堆栈:

书籍和教程占总资源的20%,主要用于参考。

据统计,大多数程序员不看书。我能理解原因,大部分书都很无聊且过时,书中所言在脑海中停留不了太久。然而,如果我在项目中遇到困难,我很想知道在找到问题的解决方案时可以参考哪些书籍、文档资源和教程。

在我看来,你不需要一本书接一本书地读,但是读几本书会给你一个坚实的语言理论框架。以下是我最喜欢的Java书籍和参考资料:

书:

·HeadFirstJava——适合初学者,快速了解如何使用语言和语言的基本结构。

·EffectiveJava——为想要充分利用语言工具集的经验丰富的程序员而编写。

·JavaPuzzlers——关于Java的短板和挑战的真实指南。

教程:

·JavaCodeGeeks——一个结构良好、与Java相关的文章列表,在开发新项目时可以作为参考,十分方便。

·JavaOracleTutorials——是大多数程序员的参考资源。

·ProgrammingCreek——一个直观且容易上手的Java教程数据库,绝对值得收藏进最爱名单。

在线课程(深层次了解语言、组合理论和实践)占总资源的30%。

与书籍不同,视频更具实践性且引人入胜。讲师通常以案例研究为特色,分享现实世界的语言应用。此外,还有一些学习平台还可以实现学生与讲师互动,支持学生提问。

虽然在线视频课程给不了足够练习空间,但它们绝对是为你在书中读到的概念建立上下文的坚实方法。以下是我最爱的Java课程:

·Coursera的Object-orientedprogramminginJava

·Pluralsight的JavaFundamentals

·Udemy的JavaProgrammingForCompleteBeginners

基于实践的平台——占总资源的50%。

编码讲的是熟能生巧,这就是解决现实生活中的问题同从书本和在线课程中学习语法一样重要的原因。我强烈建议你适当花点时间,研究练习赛和平台,这些练习赛和平台可以帮助你更好地掌握你所选择的编程语言。下面是我最爱的Java平台:

·Codegym——一个强大的实践平台,助你成为熟练的Java程序员。有超过个练习任务结合简短的讲座,帮助你重温每个问题背后的理论。Codegym涵盖了语言的所有方面,有Java核心、集合、多线程、服务和JSP,甚至数据库处理和SQL。

·HackerRank——一个容易使用,结构合理的平台,内有Java练习题。这一平台可通过完成小挑战来和别人进行battle,不同复杂级别的任务既能帮助初学者学习,也可以提升高级开发人员水平。

·Codewars是一个社区驱动的Java实践资源,开发人员在这里为彼此创建挑战和实践任务。除了Java,该平台还支持JS、C、C++和其他语言。

4.加入社区

尽管学习编码困难且孤独,你的家人很有可能不会理解你的艰辛。但你可以不是一个人,你可以向同事或同仁寻求帮助。就个人而言,我喜欢Reddit、Freedcodecamp和StackOverflow,下面是可供参考的编程社区列表:

Reddit/p>

·r/codetogether

·r/ComputerScience

·r/dailyprogrammer

·r/

分享 转发
TOP
发新话题 回复该主题