如何像程序员一样思考
全世界越来越多的人发现了软件开发的乐趣和兴奋。一个你构建东西的职业,去打破它们,然后再把它们构建得更好。您可以经常设定自己的工作时间并与来自全球各地的客户一起工作的职业。一个可以自己当老板的职业?编程在 21 世纪的吸引力是显而易见的。
成为一名成功的程序员不仅仅需要简单地学习一种流行的编码语言或参加一些免费的在线编码课程,而且涉及的不仅仅是您的技术技能——它还需要敏锐的头脑和灵活性来应对编码的独特挑战性,并试图解决以前可能从未解决过的问题。
那么你如何学会像程序员一样思考呢?在学习代码的同时,您应该培养哪些心智能力?我们汇总了成功程序员的一些最常见属性,以帮助您为使用代码以及构建网站和应用程序的富有成效的职业做好准备。
提示#1:拥抱未知和不确定
关于编程最有趣的矛盾之一是固定和公认的规则与不确定性之间的关系。虽然流行的编程语言是建立在组织系统、构建事物的规则以及一旦被破坏就会导致错误的结构之上的,但我们的第一个技巧似乎与成功程序员的逻辑思维相反。
然而,有经验的程序员会告诉您,代码的本质——总是随着新系统和变通方法的开发而被创建、修改和删除——要求您接受不知道一切。即使是世界上一些最大的科技公司中收入最高的开发人员,也很高兴地告诉您,他们对编码有很多不了解。总会有另一种新语言的出现,多年来运行良好的代码的新问题,以及试图过渡到数字空间的行业的新需求。
那么你如何拥抱未知和不确定呢?从容应对意外、变化和意想不到的问题。在学习如何解决问题和为编程问题构建更优雅的解决方案时要有耐心,并意识到您认为“完成”的事情实际上可能根本没有完成。越早为编程生涯的曲折做好准备,就越容易面对第一个障碍并避免因无法适应变化而感到沮丧。
保持灵活性(并在编程时保持理智)的最后一个技巧是始终记住保持幽默感。每个程序员都会遇到他们似乎无法解决的问题,需求不断变化的困难客户,以及需要耐心一起工作的令人沮丧的合作者。一点幽默感可以大大帮助您保持理智,保护您的工作效率,并让您克服工作的挑战性。
提示 #2 – 对自己的技能和局限性保持现实
程序员的职业生涯通常始于自由职业——虽然那里为经验丰富的程序员提供了大量的工作机会,但新手程序员通常需要寻找专门希望培训新编码员的初创公司或团队来开始他们的职业生涯。自由职业生活有一些明确的好处,包括灵活性和“自己当老板”的能力。
然而,对于许多新程序员来说,一个普遍的问题是试图咬多嚼少,开始建立工作经历和作品集。对于预算有限且产品发布期限紧迫的公司或初创公司而言,在没有经验的程序员身上浪费大量资金可能会导致你被解雇,或者获得负面评论和业务推荐,这实际上会让你在尝试进步时进一步倒退在你的职业生涯中。
所以,对于新程序员来说,诀窍是要有耐心——首先寻找机会发展你的技能,然后在你真正掌握了诀窍并发现你仍然需要什么知识之后再寻找高级项目。如果您能保持耐心并建立真正令人印象深刻的早期工作经历,您将看到随着时间的推移您可以获得的机会和您可以获得的薪水所带来的好处。
有关如何让自由职业成为您职业生涯成功开端的更多建议,请访问我们的自由职业深度指南。
提示 #3 – 决定自己当老板或为他人建立愿景
多年来,像《社交网络》和《黑客》这样的电影使编程和编码的世界浪漫化。然而,好莱坞版本的编程往往围绕着破解已建立的系统或构建下一个十亿美元的想法——对于大多数选择它的人来说,这忽略了编程职业的大部分现实。
实际上,许多开发人员属于两个阵营之一——那些试图建立自己的创造性愿景的人,以及那些乐于为他人提出职业建设想法的人。在深入您的编程生涯之前,弄清楚您属于这两个阵营中的哪一个是必不可少的,因为每个阵营都需要培养一套独特的技能,如果您在开始编程工作后选择另一条道路,这可能无济于事。
如果您选择成为帮助他人的资源,那么您将希望将您的编程生涯视为一个专业组合——网络、与客户建立关系、构建代码库和工作经历供未来客户审查,以及学习专业知识和有效协作所需的沟通技巧。
对于那些想要打造自己的“下一件大事”的梦想家来说,拓宽自己的编码技能通常比打造专业形象更重要。由于动态 Web 应用程序通常需要数千行复杂的代码,并且要解决编写此代码时会出现的许多错误,因此增加您对各种语言的了解并练习所选语言的高级概念至关重要。
技巧 #4 – 创建可帮助您高效且有效地工作的系统
这是好莱坞版本遗漏的成功程序员使用的另一个关键工具——真正成功的程序员是有组织的!真正成功的程序员不是简单地在黑暗的房间里整夜编码,而是找到适合他们的时间表、检查和交付代码的系统,以及与客户沟通的方法,确保每个人都在同一页面上。
虽然每个人都有不同的高效工作方法,但可以采取一些很好的简单步骤来帮助组织您自己的编程方法,包括:
- 创建适合您自己的生产力和客户需求的固定工作时间表。无论您是在深夜、正常工作时间还是在基于里程碑的突发编码中工作得更好,无论您从事什么工作,安顿在一个系统上都可以帮助您保持高效和多产。
- 选择一个首选的通信和可用性平台。虽然许多客户通常会为他们的团队或公司选择一个系统,但让他们知道联系您的最佳方式并确保及时响应或有空解决问题会让每个人都更开心。
- 一旦您开始接收项目并收取付款,请找到一个一致的系统来处理您用于每项工作的付款。如果您拥有经过验证、值得信赖的支付系统,让每个人都能更轻松地进行会计核算,客户就会尊重您的专业精神。
- 考虑使用Trello或Airtable等项目规划工具,它们可以帮助您创建易于组织的流程图和卡片,让您始终掌控待办事项清单。鉴于任何编码项目不断变化的需求,这对于避免浪费时间(或浪费客户的金钱和资源)至关重要
提示 #5 – 永远学习!
您可能已经开始注意到这些建议的主题——具体来说,接受您不知道的东西并努力弥补这些差距。虽然其中一些来自与客户合作和处理不同类型的编码问题和项目的经验,但还有一种简单的方法可以继续建立您的知识库。活到老学到老。
当你开始你的职业生涯并开始接受要求更高的工作时,这会是什么样子?
- 继续使用您不熟悉的语言参加优质编码课程,或尝试使用代码游乐场实时练习代码,以构建您的编码技能组合
- 访问活跃的开发人员论坛,如Stack Overflow或Github,向经验丰富的开发人员学习、提出问题并获得有关您正在解决的特定问题和错误的建议
- 阅读领先的技术出版物和程序员建议博客,它们可以帮助您了解编程的新发展和未来趋势
- 保留以前客户的目录,以获取有关流程的反馈、建议和建议,这些流程可以使您在未来的项目中成为更有效的程序员和团队成员
- 找到一个好的工具来构建和维护您自己的专业组合,它可以更好地帮助您反思您的经验和知识所在以及您需要填补哪些空白以使其更加强大
没有比经验更好的工具了,但是使用这些资源和其他资源可能是帮助您在职业生涯中取得成功并实现您的目标(无论是专业目标还是创意目标)的最佳方法。