如何成为一个牛逼的程序员?

如题所述

兴趣

兴趣是最好的老师

兴趣对于牛逼的程序员来说,是非常重要的;

对于没有兴趣的人,代码的世界往往是非常枯燥无味的,想要成功一名牛逼的程序员,毫无疑问需要投入大量的时间进行理论学习、代码实操;

而如果你可以一直强迫自己做自己毫无兴趣的事,且效率仍然很高,那请忽略这一点,你拥有成为任何一个领域大佬的潜质。


如何保持与维护兴趣?答案就在下文的Peak-End Rule峰终定律中。


峰终定律

峰终定律是指如果在一段体验的高峰和结尾,体验是愉悦的,那么对整个体验的感受就是愉悦的。

我们在学习中总是会遇到很多“难啃的骨头”,


我们又如何能在被这些困难阻拦之后,不磨灭对学习的热情?


拿我自己举例,我总是会在学习遇到难题或者是一天学习生活要结束的时候,到Leetcode上做一题我一眼能知道思路的算法题,这可以让我感觉到一天下来的学习都是快乐的,不至于磨灭对学习的激情。


所以大家可以在学习的过程中,穿插着学习自己最感兴趣的部分;


在学习的最后时刻,千万不要因为学习的困难而草草结束,一定再加一段自己最喜欢的部分。这样我们就可以欺骗到自己大脑🧠了。


拥有计算思维

学会跟计算机一样去思考


什么是计算思维?

其实很多框架,工具,设计的原理,其实其思路不过就是我们身边的一件一件小事的抽象应用。


应该多站在设计者的角度看待一个框架,一个设计,这样你就不仅仅是一个工具的使用者,慢慢地也就拥有了和设计者一样的思维。


将困难的问题简单化,我觉得这是一个牛逼的程序员应该具备且熟练应用的能力。

    当你一边看书一边听歌,这就是并行处理。

    比如:有一杯橙汁A和一杯苹果汁B,如何把两个杯子里的液体交换一下呢?我们可以用另一个空杯C,将橙汁A倒进空杯C,将苹果汁倒进A,最后将C杯里的橙汁,倒进B杯中。就完成了。这就是题目中的a,b中的数值交换,c=a;a=b;b=c;借助c 完成了两个数据的交换。这是计算思维中的数据交换。

    “古典兔子”问题:有一对小兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律,假设没有兔子死亡,第一个月有一对刚出生的小兔子,问第n个月有多少... 这是计算思维中的递归方法。

    当你把你明天需要带的东西放进背包;这就是预置和缓存。

    当你的东西丢了,你沿走过的路回寻;这就是回溯。

    为什么停电时你的电话仍然可用?这是失败的无关性和设计的冗余性。

    如何去锻炼?

    没有人天生就有编程思路,编程思路是经过一定训练后,养成的。

    学会独立思考

    这一点是非常重要的,如果当你一遇到问题就寻求他人的帮助,那自己又如何有机会去训练自己的思维呢?

    面向搜索引擎编程

    这一项貌似与上一项有矛盾,其实不然,待我分析给你听:

    我们平时遇到的编程问题95%其实都是别人已经遇到过的问题了,且一般网上已经会有较为详细的解决方案与具体的原因。

    而想要通过搜索引擎编程找到答案,则就必须运用到将复杂问题简单化的思维才能较好地描述自己的问题;

    在这些回答中,我们又要进行不断筛选,哪些方案是不可行的,而这个过程,我们又必须进一步地对这个问题的模型与其底层原理进行深挖。这就达到了锻炼思维目的。

    学会举一反三

    将新的问题转化为旧的问题。

    使用之前的解决问题的模版解决现有问题;

    之前在某公司实习的时候,领导让我设计一个高效且稳定的日志记录。

    我就借用了Redis的持久化方式中的aof与rdb思想,

    实时地记录每一条日志,保证日志记录的稳定;

    再在空闲的时间,汇聚、整合过去的日志信息,以达到高效读取的目的。

    付出时间与精力!

    没有付出就没有收获。

    付出时间与精力

    精力就像种子,想要在哪里开花结果,就把他们撒在哪里。

    没有真正的“天才少年”

    其实每个被称为“天才”、“大佬”的人,背后的付出的精力通常都是常人的几倍。

    所以,不要再抱怨为什么自己这么弱了,行动起来,把游戏和抖音卸载了吧。

    提高效率的方法

    提高效率是非常有必要的,大家都不喜欢做费力不讨好的事,这里推荐几个我试过的且收益不错的用于提高效率的学习方法。

    番茄时钟

    将时间细粒度化;

    强制自己保持一段时间的高度专注,然后再进行适当的休息,会让自己进入更加投入的状态,效率会更加地高效。

    这个方法,适合刚进入学习阶段的人使用,在专注力,自律性得到一定的锻炼之后,往往就能形成自己的生物钟,能够很好地控制自己的专注力了。

    费曼学习法

    这是我用过收益最高的学习法,没有之一!

    费曼学习法的核心就是:将复杂的问题简单化。

    假设你身边有一个8岁的小孩,你需要将你学的知识教授给他,且词汇量和注意力刚好能够理解基本概念和关系。

    这时你就必须将你学的“高大上”的东西,将其类比成我们生活中常见的事物,用通俗易懂的语言让他能够理解。

    这同时就在锻炼我们将复杂的问题简单化的能力,我们不得不去重新理清整个知识的脉络体系,从而达到一个查缺补漏的目的。

    但是其实并没有人无聊到愿意来听你对这些知识的大白话解释(还不如刷抖音快乐),所以你只能想象你真的在对一个小孩子教授这些知识。

    或者用写博客、画脑图的方式,将这些内容记录下来。

    想象着有人想要了解这部分知识,而又刚好看到了你的博客或脑图,你该如何详细地讲述给他们听。

    建议大家在学习一部分知识之后都能够写篇博客、画幅脑图来理清知识的脉络关系。既可以让自己更好地将知识体系整理吸收,也可以让自己更加直观地感受到自己在这一段时间的学习中的确是有收获的,增加了自己的成就感,达成良性循环♻️。

    自我相信

    当然这里的自信不是说盲目的自信,而是在拥有一定的基础之后,敢于跳出自己的舒适区。

    心理学认为人对于外部世界的认识可以分为三个区域:舒适区(comfort zone) ,学习区(learning zone),和恐慌区(panic zone)。

    比如说我们看一本书,如果这本书所说的内容都是我们所熟悉的,完全符合我们已有的世界观和人生观,这本书就在我们的舒适区内。

    但如果这本书说的内容与我们原有的世界观和人生观不符,但是我们思考之后仍然能够理解接受,那么这本书就在我们的学习区内。

    如果这本书我们根本就理解不了,那么就是在恐慌区。

    只有在“学习区”内做事,人才会进步。

    绝大多数人工作以后干的事情都是他的舒适区内的某种意义上的重复劳动,这怎么能进步呢?

    随着年龄的增长,一个人获得挑战自我的机会会越来越少。

    这往往并不是年龄歧视,而更多的是市场合理调配的必然结果。只有那些有特殊机遇的人才能不断尝试新的生活。

    所以我们需要怎么做?

    办法无非就是尽量呆在自己的“学习区”里,并且随时对“舒适区”保持警觉。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-20

作为程序员,身边总是有牛逼的前辈、后辈或者同辈。牛逼的人总是让人羡慕。比如自己苦搞一天的 BUG , 头发快抓掉完了,人家扫上两眼,改一行代码,问题就解决了;比如自己干了十年开发,薪水还不到10K ,人家才毕业就签了16K 的合同;比如我要天天辛苦加班工作还干不完,人家嘛事儿不干每天就喝喝咖啡,结果写出来的软件居然比我的稳定多了好用多了。这牛不牛?

想成为牛逼的程序员,简单总结了一点小经验:

    投资自己

    站在巨人的肩膀上

    了解数据结构和算法

    用熟练一款开发工具

    写代码要规范

    不停给自己充充电,学无止尽就是这个意思

    计划、坚持和执行力

    放低自己的姿态

望采纳!

第2个回答  2020-11-19
如果要想成为一个厉害的程序员,涉及到的方面比较多。
首先要了解计算机的组成原理、结构体系,还要熟练掌握多种编程语言,以及常见的算法。
还需要熟悉各种软件知识:网络、图形图像、数据结构、编译原理等
同时熟悉相关的专业知识,这个得看所在行业了。如在电力行业的软件需要对电力调度、保护设备等了如指掌。
这些,需要投入大量的时间进行学习。需要毅力才可以实现,不是说说就行的。本回答被网友采纳
第3个回答  2020-11-19
跟着我的步骤做 ,洗脸,刷牙,睡觉,梦中啥都行。
第4个回答  2021-02-01

会持续更新各行业各领域的知识

相似回答