学好编程的 4 个秘诀

简介: 学好编程的 4 个秘诀

你好呀,我是沉默王二,一枚沉默但有趣又帅气的程序员(你听,耳边是不是响起了装逼的声音)。今天我来掏心掏肺地聊聊学好编程的 4 个秘诀,应该会对你产生一些微妙而又积极的影响。


闭上眼睛转个圈,想一下你身边那些人,是不是总有那么几个,能够脱颖而出,好像不管他们做什么事情,都能够取得不错的成绩。


反正我身边就有这么一些人,他们学习学的好,是老师的骄傲,是同学的榜样;朋友处的不错,大家都乐于和他交往;工作上表现突出,不怕事,能抗事,团队中处于核心地位,薪资待遇也高一筹。


认真地想一想,你就会发现,他们在做事情的时候是有方式可循的。


这里多说两句哈。上学的时候,我有一双善于发现美的眼睛,但焦点是自己,所以很多同学都说我很自恋,同时呢,我还特别乐意挑别人的毛病。


最近一些年,我这双眼睛虽然近视度数增加了,但仍然很善于发现美,并且焦点发生了变化,变成了身边的人,无论他做的是什么职业,我总想从他身上学到一些什么。


这种转变,对于我的成长来说,我认为非常重要。你是不是也心有灵犀,这么觉得呢?好了,来看看做好事情都有哪些秘诀(可能算不上)吧。


第一,修炼内功。


大家应该都挺喜欢看武侠小说的吧,尤其是金庸的作品,男主都特别注重内功的修炼。萧峰、郭靖、杨过、张无忌等等等等,内功都是独领风骚的,能与他们匹敌的寥寥无几。


程序员是这个时代的弄潮儿,要想站得住,不被大浪掀翻,内功自然要浑厚。直白点说,就是,只会 CURD 是很容易被淘汰出局的。


对于初学者来说,一门编程语言,一种工具,一个框架,先会用是最迫切的需求。一上来就去看源码,很容易就劝退了。


等会用了之后,用多了之后,就得深入,知道为什么要这样用,能不能按照其他的方式用,这背后的原理又是什么,都得逐渐搞清楚,否则就只能停滞不前,无法更进一步。


就比如说,我们学 Java,上来就去搞多线程并发、Java 虚拟机,我敢保证,学霸都不一定能扛得住。


正确的学习方法是什么呢?


简单了解一些 Java 的历史背景,然后安装 JDK,安装 IDE,写个 Hello World 感受一下编程语言的魅力。再然后学习数据类型、运算符、流程控制语句、访问权限控制、对象和类、接口与抽象类、字符串、异常处理,接着是集合、泛型、枚举、IO,最后才是多线程并发、Java 虚拟机、性能优化。


就这样,循序渐进,一步一个脚印,等到这些都会用了,编程经验也提高了,再去深入地研究源码,了解设计模式、计算机基础知识、计算机网络知识、数据结构与算法等等,就会游刃有余。


算法研究的目的是为了更有效的处理数据,提高数据运算的效率,数据运算是定义在数据结构上的,各大公司的笔试基本都考这个。如果你想拿到更多的 offer,拿到更好的 offer,LeetCode 上的题要能刷个一百到三百道,有时间有精力的话,最好参加一下 ACM 竞赛,在找工作的时候会非常有优势。


算法薄弱的同学,或者想要提高的同学,可以点击链接看我另外一篇文章!


第二,持续改进。


“伟大的牛逼之前都是傻逼式的坚持”,这句话听起来虽然有点糙,但理不糙啊。每个人都知道改进,但并不是每个人都能坚持下去。


我有个大学同学,做淘宝客的,一开始没有摸到门路,就很难,坚持了一年,收益甚微。有一天,他不知道哪根筋“错”了,在淘宝上花了几百块钱做了一个网站,界面很丑陋,但 SEO 做得很不错,慢慢就有人通过百度搜索的关键字找到他。


随着时间的推移,找他的人越来越多,钱自然就赚到了。于是,他成立了一个工作室,很多大学同学都到他那干过,但很多同学干了三五个月后,就坚持不下去,不想干了。


他呢,一直坚持着做,虽然有起有伏,但在郑州买了一套大四室的房子,又买一辆不算差的车。结婚的时候,我去过他老家,条件不是一般的差,这让我更佩服他了。


人,在天赋上,在出身上,是有差别的,不要明目张胆地忽视这两点。但是,能够有所作为的人,你会在他们身上发现一个共同点,就是“持续改进”。


拿写作这件事来说,我有天赋吗?如果有人说我有,我是拒绝承认的。但如果有人说我是一个懂得改变,懂得坚持的人,那我只好承认,他是懂我的。


一开始,我只在 CSDN 上写,后来我同步到各大博客平台,这就是改变。一开始,我只在知乎上同步文章,没有回答问题,后来我发现,回答问题的访问量远超文章,这是知乎的机制决定的,我改变了。一开始,我不会玩 GitHub,最近一段时间我迷上了 GitHub,这也是改变。


这些改变,都是积极的,并且我还会一如既往地坚持下去,所以我才敢笃定,“明天会更好”。


第三,不断叠加。


为什么我一直推荐大家去写博客,并不是因为我尝到了甜头,而是因为写博客本身,最直观的一点就是,博客的浏览量会“不断叠加”,更深层次的是,写博客带来的影响力会“不断叠加”。


再没有其他的事情,比写博客更容易上手,更能带来不断叠加的效应了。


很多人会说,我不知道写什么啊?


学习笔记就可以啊,读书感悟就可以啊,解决 bug 的方案就可以啊。


还有人会说,我写了,没有访问量啊?


个位数的访问量总有吧!一开始,除非天赋异禀,大多数人的访问量都不会特别高,我也是从个位数起步的。


也许还有人说,我写了,有访问量,但遇到瓶颈了。


瓶颈几乎是每个人都会遇到的,“几乎”甚至可以去掉。遇到瓶颈的时候,有人放弃了,一切化为乌有;有人坚持着,并且寻求改变,也许会失败,也许会踏步不前,但更多的是收获,蓄能,为下一次的起飞做好准备。


第四,保持耐心。


我们当前所处的时代,节奏非常快,快到有个 APP 就叫快手。但殊不知,有些事情,慢一点更好。


昨天,我和一个朋友聊天,他说最近接到一个项目,费用大概 9 万多,工期 35 个工作日。还让我看了一下需求文档,说差不多都是增删改查,应该能完工。


看完需求后,我只能说,我这个朋友真的是盲目乐观。但这个时代就是这样,甲方认为所有的项目都很简单,不外乎增删改查,找个开源项目在上面改一改,就能完事,能需要多长时间?


你要是说需要一年半载,甲方就会说,“到那时候,花都谢了。”


足球场上,一个教练一年出不了成绩,换,甚至半年出不了成绩,换。球迷没有耐心,俱乐部高层也没有耐心。


电竞比赛,一场游戏如果超过一个小时,观众就坐不住了,制作方也坐不住,于是比赛时长越来越短,你就会发现,一些酱油位的英雄在一场比赛里穷到只能穿一双草鞋。


在这样的时代背景下,我们其实更应该保持耐心,多给自己一点时间。


之前有个读者私信给我说,自己是转行学编程的,很辛苦,花了很多时间,但似乎证明自己并不适合学编程。我就问他,你学多长时间了,他说三个多月了。


唉呀妈呀,三个多月真的是一个很短的时间,学编程并不是一件轻而易举的事情,是需要时间的。我已经有十多年的编程经验了,但很多时候,我还是觉得自己只是一个刚入门的菜鸟(请允许我谦虚会),还有太多太多的知识等着我去学习。


遇到挫折的时候,能否给自己一点耐心,其实是一种不可多得的能力。表面上的光鲜亮丽,背后都是辛勤的付出,时间的沉淀。


像算法题,一开始刷起来,任何人都会感到很痛苦,关键是你得坚持,保持耐心,每天刷一道两道,不要今天刷 10 道,明天刷 0 道,可能坚持不了一周时间你就放弃了。保持节奏,不要打乱自己。时间就是最好的朋友。


分享一些我之前刷 LeetCode 的心得,我膨胀到要飘起来了!


怎样保持耐心呢?有两个关键点,其一就是降低预期,不要把自己架在一个很高的位置,让自己上下为难;其二就是全力以赴,做到问心无愧。


相关文章
|
Java 数据库连接 数据安全/隐私保护
利用开源工具实现轻量级上网行为审计(来源ispublic.com)
来源ispublic.com Google上貌似找不到利用开源软件实现上网行为审计的文章——这也难怪,开源在国内并不流行,而上网行为审计在国外也不流行。
1706 0
|
4月前
|
机器学习/深度学习 算法 计算机视觉
产教融合结成果 与阿里云合作的结晶
近日,上海市计算机学会公布2024年度教学成果奖名单,赵卫东老师荣获一等奖。他长期专注计算机科学教学与科研,在课程体系创新和人才培养方面成效显著。获奖项目《面向新工科的计算机专业实践教学体系构建与创新》聚焦工程教育需求,通过教学改革提升学生实践能力。该成果包含与阿里云合作结晶,其深度学习教材涵盖多个实际应用案例,如图像分类、声音识别等,助力读者深入理解算法实践。
119 2
产教融合结成果  与阿里云合作的结晶
|
10月前
|
算法 安全 量子技术
构建未来:量子计算在软件开发中的潜力
【10月更文挑战第29天】量子计算作为革命性的计算范式,正从理论走向实际应用。本文探讨了量子计算的基本概念、在软件开发中的潜在应用,如优化问题、药物发现和加密安全,以及如何通过学习量子编程语言和使用现有工具来实验和测试量子算法,展望其在未来软件开发中的重要作用。
|
数据采集 存储 运维
CDP客户数据管理平台体系化搭建
客户数据平台通过采集多方客户数据(主体与线索)等,从而进行精准的客户分析和人群细分,进而实现高效的客户维系和发掘以及日常营销运营。
914 0
CDP客户数据管理平台体系化搭建
EMQ
|
存储 Prometheus 监控
Mria + RLOG 新架构下的 EMQX 5.0 如何实现 1 亿 MQTT 连接
大规模分布式物联网MQTT消息服务器EMQX的5.0 版本在发布前的性能测试中达成了1亿 MQTT 连接。本文将对使EMQX水平扩展能力得到指数级提升的全新底层架构进行详细解析,同时帮助大家理解在不同的实际应用场景中如何选择合适的部署架构,实现更加可靠的设备接入与消息传输。
EMQ
572 0
Mria + RLOG 新架构下的 EMQX 5.0 如何实现 1 亿 MQTT 连接
|
负载均衡 网络安全
VRRP、VGMP 和 HRP 之间有什么区别?这篇文章给你答案!
作为USG防火墙最重要的功能之一,双机热备极大地提高了设备的可靠性,当主用设备发生故障时,备用设备可以立即接管受影响的业务,从而显着减少业务中断的持续时间。
1040 0
|
域名解析 缓存 开发框架
HTTP报错状态码详解
HTTP报错状态码详解
1195 0
|
机器学习/深度学习 人工智能 自然语言处理
7.5亿美元做代码转换?一个Facebook TransCoder AI就够了!
代码的迁移和语言转换是一件很困难且昂贵的事情,澳大利亚联邦银行就曾花费5年时间,耗费7.5亿美元将其平台从COBOL转换为Java。而Facebook最近宣称,他们开发的一种神经转换编译器(neural transcompiler),可以将一种高级编程语言(如C ++,Java和Python)转换为另一种,效率飞起!
822 0
7.5亿美元做代码转换?一个Facebook TransCoder AI就够了!
|
前端开发 JavaScript API
React 18 升级指南,超简单
React 18 升级指南,超简单
1067 0
|
SQL 存储 监控
【巡检问题分析与最佳实践】MongoDB 空间使用问题
阿里云数据库MongoDB的空间使用率是一个非常重要的监控指标,如果实例的存储空间完全打满,将会直接导致实例不可用。一般来说,当一个MongoDB实例的存储空间使用比例达到80-85%以上时,就应及时进行处理,要么降低数据库实际占用空间的大小,要么对存储空间进行扩容,以避免空间打满的风险。 然而,阿里云数据库MongoDB的空间使用情况分析并不简单,本文将由浅入深帮您查看,分析和优化云数据库MongoDB的空间使用。
【巡检问题分析与最佳实践】MongoDB 空间使用问题