如何像程序员一样思考

news2024/11/26 3:22:07

 

如何像程序员一样思考

全世界越来越多的人发现了软件开发的乐趣和兴奋。一个你构建东西的职业,去打破它们,然后再把它们构建得更好。您可以经常设定自己的工作时间并与来自全球各地的客户一起工作的职业。一个可以自己当老板的职业?编程在 21 世纪的吸引力是显而易见的。

成为一名成功的程序员不仅仅需要简单地学习一种流行的编码语言或参加一些免费的在线编码课程,而且涉及的不仅仅是您的技术技能——它还需要敏锐的头脑和灵活性来应对编码的独特挑战性,并试图解决以前可能从未解决过的问题。

那么你如何学会像程序员一样思考呢?在学习代码的同时,您应该培养哪些心智能力?我们汇总了成功程序员的一些最常见属性,以帮助您为使用代码以及构建网站和应用程序的富有成效的职业做好准备。

提示#1:拥抱未知和不确定

关于编程最有趣的矛盾之一是固定和公认的规则与不确定性之间的关系。虽然流行的编程语言是建立在组织系统、构建事物的规则以及一旦被破坏就会导致错误的结构之上的,但我们的第一个技巧似乎与成功程序员的逻辑思维相反。

然而,有经验的程序员会告诉您,代码的本质——总是随着新系统和变通方法的开发而被创建、修改和删除——要求您接受不知道一切。即使是世界上一些最大的科技公司中收入最高的开发人员,也很高兴地告诉您,他们对编码有很多不了解。总会有另一种新语言的出现,多年来运行良好的代码的新问题,以及试图过渡到数字空间的行业的新需求。

那么你如何拥抱未知和不确定呢?从容应对意外、变化和意想不到的问题。在学习如何解决问题和为编程问题构建更优雅的解决方案时要有耐心,并意识到您认为“完成”的事情实际上可能根本没有完成。越早为编程生涯的曲折做好准备,就越容易面对第一个障碍并避免因无法适应变化而感到沮丧。

保持灵活性(并在编程时保持理智)的最后一个技巧是始终记住保持幽默感。每个程序员都会遇到他们似乎无法解决的问题,需求不断变化的困难客户,以及需要耐心一起工作的令人沮丧的合作者。一点幽默感可以大大帮助您保持理智,保护您的工作效率,并让您克服工作的挑战性。

提示 #2 – 对自己的技能和局限性保持现实

程序员的职业生涯通常始于自由职业——虽然那里为经验丰富的程序员提供了大量的工作机会,但新手程序员通常需要寻找专门希望培训新编码员的初创公司或团队来开始他们的职业生涯。自由职业生活有一些明确的好处,包括灵活性和“自己当老板”的能力。

然而,对于许多新程序员来说,一个普遍的问题是试图咬多嚼少,开始建立工作经历和作品集。对于预算有限且产品发布期限紧迫的公司或初创公司而言,在没有经验的程序员身上浪费大量资金可能会导致你被解雇,或者获得负面评论和业务推荐,这实际上会让你在尝试进步时进一步倒退在你的职业生涯中。

所以,对于新程序员来说,诀窍是要有耐心——首先寻找机会发展你的技能,然后在你真正掌握了诀窍并发现你仍然需要什么知识之后再寻找高级项目。如果您能保持耐心并建立真正令人印象深刻的早期工作经历,您将看到随着时间的推移您可以获得的机会和您可以获得的薪水所带来的好处。

有关如何让自由职业成为您职业生涯成功开端的更多建议,请访问我们的自由职业深度指南

提示 #3 – 决定自己当老板或为他人建立愿景

多年来,像《社交网络》《黑客》这样的电影使编程和编码的世界浪漫化。然而,好莱坞版本的编程往往围绕着破解已建立的系统或构建下一个十亿美元的想法——对于大多数选择它的人来说,这忽略了编程职业的大部分现实。

实际上,许多开发人员属于两个阵营之一——那些试图建立自己的创造性愿景的人,以及那些乐于为他人提出职业建设想法的人。在深入您的编程生涯之前,弄清楚您属于这两个阵营中的哪一个是必不可少的,因为每个阵营都需要培养一套独特的技能,如果您在开始编程工作后选择另一条道路,这可能无济于事。

如果您选择成为帮助他人的资源,那么您将希望将您的编程生涯视为一个专业组合——网络、与客户建立关系、构建代码库和工作经历供未来客户审查,以及学习专业知识和有效协作所需的沟通技巧。

对于那些想要打造自己的“下一件大事”的梦想家来说,拓宽自己的编码技能通常比打造专业形象更重要。由于动态 Web 应用程序通常需要数千行复杂的代码,并且要解决编写此代码时会出现的许多错误,因此增加您对各种语言的了解并练习所选语言的高级概念至关重要。

技巧 #4 – 创建可帮助您高效且有效地工作的系统

这是好莱坞版本遗漏的成功程序员使用的另一个关键工具——真正成功的程序员是有组织的!真正成功的程序员不是简单地在黑暗的房间里整夜编码,而是找到适合他们的时间表、检查和交付代码的系统,以及与客户沟通的方法,确保每个人都在同一页面上。

虽然每个人都有不同的高效工作方法,但可以采取一些很好的简单步骤来帮助组织您自己的编程方法,包括:

  • 创建适合您自己的生产力和客户需求的固定工作时间表。无论您是在深夜、正常工作时间还是在基于里程碑的突发编码中工作得更好,无论您从事什么工作,安顿在一个系统上都可以帮助您保持高效和多产。
  • 选择一个首选的通信和可用性平台。虽然许多客户通常会为他们的团队或公司选择一个系统,但让他们知道联系您的最佳方式并确保及时响应或有空解决问题会让每个人都更开心。
  • 一旦您开始接收项目并收取付款,请找到一个一致的系统来处理您用于每项工作的付款。如果您拥有经过验证、值得信赖的支付系统,让每个人都能更轻松地进行会计核算,客户就会尊重您的专业精神。
  • 考虑使用TrelloAirtable等项目规划工具,它们可以帮助您创建易于组织的流程图和卡片,让您始终掌控待办事项清单。鉴于任何编码项目不断变化的需求,这对于避免浪费时间(或浪费客户的金钱和资源)至关重要

提示 #5 – 永远学习!

您可能已经开始注意到这些建议的主题——具体来说,接受您不知道的东西并努力弥补这些差距。虽然其中一些来自与客户合作和处理不同类型的编码问题和项目的经验,但还有一种简单的方法可以继续建立您的知识库。活到老学到老。

当你开始你的职业生涯并开始接受要求更高的工作时,这会是什么样子?

  • 继续使用您不熟悉的语言参加优质编码课程,或尝试使用代码游乐场实时练习代码,以构建您的编码技能组合
  • 访问活跃的开发人员论坛,如Stack OverflowGithub,向经验丰富的开发人员学习、提出问题并获得有关您正在解决的特定问题和错误的建议
  • 阅读领先的技术出版物程序员建议博客,它们可以帮助您了解编程的新发展和未来趋势
  • 保留以前客户的目录,以获取有关流程的反馈、建议和建议,这些流程可以使您在未来的项目中成为更有效的程序员和团队成员
  • 找到一个好的工具来构建和维护您自己的专业组合,它可以更好地帮助您反思您的经验和知识所在以及您需要填补哪些空白以使其更加强大

没有比经验更好的工具了,但是使用这些资源和其他资源可能是帮助您在职业生涯中取得成功并实现您的目标(无论是专业目标还是创意目标)的最佳方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

android12.0(S) Launcher3 导入 AndroidStudio 调试编译

验证环境 aosp 12.0 源码,分支 android-12.0.0_r3 可以参考之前写的 android12.0(S) Pixel 3XL (QCOM 845) 编译刷机 AndroidStudio 版本 Android Studio Arctic Fox | 2020.3.1 Patch 4 gradle 版本 gradle-7.0.2-bin.zip gradle:7.0.4 二手 Pixel 3 XL一台可直…

[WUSTCTF2020]颜值成绩查询(布尔注入)

目录 信息收集 脚本 reference 信息收集 输入1出现固定的回显,输入2-4出现乱码 Hi admin, your score is: 100 输入其他特殊字符无回显,也无报错回显 采用布尔注入进行判断 布尔注入原理 代码存在SQL注入漏洞,然而页面即不会回显数据&am…

【C++算法图解专栏】一篇文章带你掌握尺取法(双指针)

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为 0 基础刚入门数据结构与算法的小伙伴提供详细的讲解,也欢迎大佬们一起交流~ 📚专栏地址:https://blog.csdn.net/Newin…

java spring IOC xml方式工厂Bean操作

spring中有两种Bean 第一种 普通 Bean 就是我们在配置文件中 定义的类对象 创建bean 并定义相关的id和声明类对象 普通bean的特点在于 在配置文件中定义的类型 也就是返回类型 就比如 你定义的是一个 book类的类型 那你这个bean返回的 也比如是个book类型的对象 第二种 是在工…

模拟实现vector/迭代器失效问题

对于STL,我们不仅学会使用STL,还要了解其底层原理,这样一来,我们就能知道什么时候用string好,什么时候用vector,什么时候用list,哪种方法效率高等等。其次了解了STL的底层原理,也助于我们的C功力…

RTF、RIR、Steering Vector傻傻分不清

RTF: Relative transfer function,相对传递函数RIR: Room impulse response,空间冲击响应Steering vector: 导向矢量场景问题定义:空间中存在I个麦克风和J个声源,麦克风采集到的信号其中,麦克i的信号其中表…

一起自学SLAM算法:9.1 ORB-SLAM2算法

连载文章,长期更新,欢迎关注: 下面将从原理分析、源码解读和安装与运行这3个方面展开讲解ORB-SLAM2算法。 9.1.1 ORB-SLAM2原理分析 前面已经说过,ORB-SLAM2算法是特征点法的典型代表。因此在下面的分析中,首先介绍一…

被删库勒索了,怎么使用docker进行MySQL容器的管理?

大家觉得写还可以,可以点赞、收藏、关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 起因:云服务器MySQL密码设置的太简单了,导致到被入…

路由策略实验

1.先配置IP和环回 [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [R1-GigabitEthernet0/0/0]int g 0/0/1 [R1-GigabitEthernet0/0/1]ip add 22.1.1.1 24 [R1-GigabitEthernet0/0/1]q [R1]int l 0 [R1-LoopBack0]ip ad…

ETHDenver 2023 的 Cartesi BUIDLathon 项目创意

希望你在了解Cartesi之前,谨慎对待自己的行为。一旦你开始研究并搜寻可以使用Cartesi Rollups构建的项目或者应用,你就会陷入一个令人兴奋的螺旋洞穴中,你会上瘾。如果你想在2023年中建造一些很具有意义的事情,那你就来对地方了。…

Python01概述 基础语法 判断

Python概述 第二章-Python基础语法 01-字面量 02-注释 03-变量 04-数据类型 05-数据类型转换 06-标识符 07-运算符 08-字符串的三种定义方式 09-字符串的拼接 10-字符串格式化 11-字符串格式化的精度控制 12-字符串格式化的方式-快速写法 13-对表达式进行格式化 14-字符串格…

Java语法核心——面向对象编程

目录 面向过程思想概述 面向对象思想概述 面向对象思想特点及举例 类与对象的关系 类的定义 类与对象的案例(demo02) 对象内存存储机制 成员变量和局部变量的区别 private关键字 面向过程思想概述 我们回想一下,这几天我们完成一个需求的步骤:首…

echarts数据可视化项目搭建(一)

目录直角坐标系通用配置项tooltiptoolboxlegenddataZoom柱状图常见效果折线图常见效果散点图常见效果其他坐标系饼图基本实现常见效果地图地图基本展示不同城市颜色不同地图与散点图结合雷达图仪表盘本博客内容参考黑马课程,详细信息请参考以下网址 Bilibili官方黑…

Apache Superset 开源商业智能大数据可视化

Apache Superset 是一款现代化的开源大数据工具,也是企业级商业智能 Web 应用,用于数据探索分析和数据可视化。 Apache Superset 是一个适合企业日常生产环境中使用的商业智能可视化工具。它具有快速、轻量、直观的特点,任何用户都可以轻松地…

Spring Boot学习之Shiro

文章目录零 全部源码地址一 Shiro简介1.1 Shiro功能1.2 Shiro架构(外部视角)1.3 Shiro架构(内部视角)二 Shiro快速入门2.1 演示代码&部分源码解读三 Spring Boot集成Shio3.0 准备操作3.1 整合Shiro3.2 页面拦截实现3.3 登录认…

ESP32设备驱动-HMC5983磁力计驱动

HMC5983磁力计驱动 1、HMC5983介绍 霍尼韦尔 HMC5983 是一款温度补偿型三轴集成电路磁力计。这种表面贴装、多芯片模块专为汽车和个人导航、车辆检测和指向等应用的低场磁场传感而设计。 HMC5983 包括我们最先进的高分辨率 HMC118X 系列磁阻传感器和一个 ASIC,该 ASIC 包含…

AOP切面编程

前言:AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善,它以通过预编译方式和运行期动态代理方式实现在不修改源代码的情况下给程序动态…

各种Sequence Self-Attention变形 (加速矩阵运算 且保证全局特征)

人工设计Self-attention的N*N矩阵1. Local Attention/Truncated Attention2. Stride Attention3. Global Attention人工设计Self Attention的使用与选择1.LongFomer2.Big Bird自动设计Self Attention的N*N矩阵1. Reformer2.Sinkborn Sorting Network不需要N*N大小的矩阵1.Linfo…

【python】图片转字符画 cv2+pygame实现

网上看到一些字符画,非常羡慕,想要用python写一个类似的东西,突然想到字符画不就是把图片分割为像素块再进行替换嘛 恰好之前稍稍入门了python的opencv库,可以对图片进行处理。 处理图片的思想为:对一个区域的像素进行参考值计算,用具有相似参考值的字符进行替代,因此除…

打工人必学的法律知识(七)——《中华人民共和国劳动合同法实施条例》

目录 来源 第一章 总 则 第二章 劳动合同的订立 第三章 劳动合同的解除和终止 第四章 劳务派遣特别规定 第五章 法津责任 第六章 附 则 来源 《中华人民共和国劳动合同法实施条例》 第一章 总 则 第一条 为了贯彻实施《中华人民共和国劳动合同法》(以下简称…