圣经中,将人类的恶性划分为七种表现方式,定义为人类与生俱来源自灵魂的七原罪。
傲慢、妒忌、暴怒、懒惰、贪婪、贪食及色欲。
这七个极具概括性的词,如今可以套用到人类各行各业、日常生活的各个方面所犯的错误。
程序员也难逃魔爪。
每次向新职业的过渡都涉及到学习曲线。完全适应新的工作环境前,人人必须经历一个经受考验蜕变的过程。
具有较强适应能力和应变能力的人可能会觉得这个过程顺利和简单。而普通人则可能需要更多的时间和精力来适应。不管是身处学术阶段还是职业阶段,过渡到数据科学职业无疑是个很大的挑战。某种程度上,这是不断学习、永无止境的旅程。而这趟旅程充满艰难险阻,和各种未知,一不小心就会陷入错误的泥潭。
为此,小芯向数据科学领域各路大神取经,总结出以下关于新晋程序员的7条原罪。快来看看,你有木有踩坑吧~
1. 没有初步的策略
大多数不具备计算机科学和数据分析知识背景,却想要开始数据科学的新职业的工程师,关于如何成为数据科学家、数据分析家或数据工程师,他们没有明确的战略。
他们不断增加信息量,但却从未真正深入地了解特定内容。他们往往一次参加多个线上课程,从不同的网站中下载备忘单,阅读许多作家的文章,但却没能形成一个成体系的计划。
开始这个学习旅程之前,小芯强烈大家建议制定一个学习计划和日常习惯表,遵循它们以实现目标和建立或加强分析能力和编程技能。在想从事的行业中对比较流行的编程语言和软件进行研究,查找广泛使用的库和包,并根据目标定义最适合你的编程语言和软件。坚持不懈和不断实践下,你就是明天的程序员大师!
2. 尽力一次性学习多种编程语言和软件
新程序员常常受到一次学习多种编程语言和软件的诱惑,进而将它们作为技能写进简历。可能你认为这是推销自己的一种手段,但很多时候适得其反。
数据科学、数据分析和数据工程职位空缺的公司和机构更倾向于选择一位具备扎实专业背景的候选人,他精通一门或者两门编程语言和软件,最多三门。很少有职位要求你精通Python、R、SQL、C、C++、C#、Matlab、Java、Ruby等所有的编程语言。
相反地,要研究在特定行业或公司,你更可能会使用的编程语言和软件;掌握一种或多种编程和分析技能,并真正地精通。你会发现所有的编程语言之间存在共同的逻辑和相似的功能。
然后。从一种语言过渡到另一种语言仅需学习不同的语法,而无需学习其背后的整个逻辑。
3. 代码编写过程中不寻求反馈意见
经理要求的标准、第三方期待得到的结果、客户的需求与你实际完成的事情之间总是存在巨大的差距。
只要你在开发程序或新代码,就尝试将它分成几个阶段,征求反馈意见之后再进行下一步。每个阶段的反馈会让你知道自己是否仍处于正确的操作轨道,或者是否要根据客户的需求进行更改。但这不意味着你无法理解要求执行的操作,而是将其视为利益相关者间的想法和期望。越是经常收到反馈,如果出现偏差,你需要修改的内容就越少。要记住持续的交流沟通对每个项目的成功实现都是至关重要的。
4. 不在代码上写注释行
尽管这听起来很明显而且是一项微不足道的任务,但是返回暂停项目时,它是跟踪每行代码或代码块所执行操作的好策略。
在代码编写的初期过程,程序员对项目的目的和目标了如指掌并不断更新;他们知道要编写的程序背后的逻辑步骤,以及追求的结果。然而,由于各种原因(经济限制、信息缺失、优先事项变更)的影响,所有的项目都容易暂停。这将迫使程序员在保留前一个任务的情况下需要切换到不同的任务。
恢复中断项目所花时间越长,记住项目剩余位置和缺失点的几率就越低。这就是注释行的用武之地。在必要的地方尝试加上它们;请记住标注得要足够清晰,能够让程序员和执行者理解代码背后的逻辑。
5. 没有测试当前的知识水平
你可能已经看过许多操作方法和分步编程教程。你可能还阅读了多本数据科学书籍和编程指南。你也可能已经完成了来自Udemy、Coursera 和DataCamp的许多编程训练。猜猜接下来做什么?
没错,就是测试当前的知识水平。上述训练和课程的真正价值不在于获取资格证书,而是获得的知识并能成功将其运用于解决既定问题。
坦白来说,参加线上课程,跳过多数课而不是深入学习,每个人都可以获得资格证书,公司和机构也非常清楚这一点。尝试将自己推向新的极限,寻找线上编程挑战,尝试集思广益,在没有太多资源帮助的情况下进行编码。这并不意味着执行实际工作时不能运用它们,但是这样做能够让你在工作时舒适感和安全感更强,并降低对这些资源的依赖性。
6. 假装知道一切
相信我,你做不到的。
没有人能做到这一点。数据科学领域博大精深,每天都能学些新东西。你能够开发、使用和掌握的所有库、包、函数、方法及算法真的很多。时刻保持学习的好奇心和谦虚的态度,因为你越认为自己知道的多,实际你知道的越少。
7. 跟随大流
某些时候,使用一种特定的编程语言和软件会让你感觉得心应手,于是你可能觉得无需学习新的编程语言和软件。
小芯不止一次听到数据分析小哥哥争论哪种编程语言在性能、可利用的库和包、线上资源以及受欢迎程度方面是很好的。甚至还吵起来,打起来。所以始终保持谦虚,认识到总会从其他的语言、库、包或软件中学习到新的知识,真的很重要!
毕竟,每种编程语言有其优缺点,但目标是充分利用它们,灵活运用,清楚最适合用于给定任务的编程语言,以解决特定的问题。
这些“罪状”,你中了哪些呢?