整理头脑中的混乱
这个故事的起源
我脑子里一片混乱的根源
整理混乱局面
这是一个关于初级程序员的真实故事,他梦想着很多东西,却被现实重创,最终找到了内心的平静。分享这个故事,我想告诉其他初级(或者甚至更有经验)的开发者,程序员的生活并不总是充满乐趣和游戏,挣扎是可以接受的,而且总有出路!
这个故事的起源
我的旅程始于恰好五个月前。那是我上班的第一天。我兴奋地走在华丽的办公室里,认识我未来的同事,参观会议室,当然,还要了解咖啡机的摆放位置,以及开发人员正常运作的必要条件。我记得那是我最快乐的日子之一——我怀揣梦想,努力工作,终于有了回报,现在我终于来到了梦想之地。我当时完全没有想到,这将会是我人生中一个意想不到的新篇章的开始。
我脑子里一片混乱的根源
让我们回到故事开始的几个月前。我在大学里用.NET语言完成了一个相当大的项目,然而我必须使用的技术远不止C#。我必须熟悉Python、命令行用法、Heroku部署、Xamarin、图像识别,甚至一些机器学习算法。然而,我享受其中的每一分钟,并没有觉得它有任何困难或压力。于是,我申请了一个.NET职位,天真地以为只需要用到它。天哪,我错了……那个当时看似浩大的项目,结果却像马拉松比赛前的轻松一刻。
错误
首先,我们来谈谈 Bug。调试对我来说是一个新发现,而且是在面试前一个月才发现的。另一个重要的事情是,我尝试只在项目的一个小范围内进行调试,主要是在一个类中,而不是同时跨多个服务进行调试。所以,当我不得不这样做的时候,我感到不知所措和沮丧,因为我找不到 Bug,后来才发现问题出在更远的地方。
工具
看到我心爱的 C# 代码真是太好了。语言本身对我来说没什么难度,但不懂如何有效地在代码库中导航就更难了。我最初的导航是在文件中搜索正确的类,但没过多久就忘了。
未知语言
我之前说我错了,以为只会用 C#,我是认真的 :D 除了 C#,我还得用 SQL(这个比较常见,对我来说也不是什么新鲜事)、Python、NodeJS、Docker 等等。不过,之前扎实的编程基础和学习的热情让我乐在其中,所以没什么可抱怨的。
另一种未知语言
那是我上班的第二天。我本该飞去见我的另一半同事。我的凭证还没准备好,就被一大堆商业术语轰炸了。这对我来说可能是最难熬的。我根本无法理解“这个术语”和“那个术语”的含义,所以很难开始一项工作。有时我甚至觉得自己比较弱,不够格,因为我花了太长时间才开始理解人们在说什么,我需要做什么,以及代码是如何与商业语言相互关联的。
最重要的是……
持续的恐惧或失败
我一直不敢推送我的代码,因为它可能会破坏一些东西。我反复检查我的代码,吹毛求疵,最后才点击“创建新的拉取请求”按钮。我害怕测试我的代码,我害怕做任何事git add/commit/push
,因为,你猜对了,它可能会破坏一些东西。
整理混乱局面
所有这些事情加在一起,让我的脑子一片混乱,也引发了一些严肃的想法,比如:兄弟,你得到了你想要的工作,只是不能在人生的起步阶段就放弃。而我没有放弃。相反,我开始思考如何解决这些问题。我决定把这些方法分享给你,解决我上面提到的所有问题。
了解上下文!
在没有上下文的情况下调试非常困难。花些时间了解你的代码库。找到问题的入口点非常有帮助,无论是 HTTP 端点、Main
程序方法还是函数的开头。查看它周围的代码。查看你的基础设施。了解代码部分或服务之间的通信。然后才能审视你的问题。是的,有时确实会很困难,但随着时间的推移,你会越来越了解代码失败的原因,你花在识别潜在问题上的时间也会越来越少。
了解您的工具!
我们很幸运生活在这个超级炫酷的IDE时代。好好利用它们吧!学习你常用的IDE或代码编辑器的调试、格式化、注释和搜索快捷键。这将成倍地加快你的工作流程!就我而言,Resharper在.NET代码分析方面提供了极大的帮助。
面对未知!
我非常喜欢我的同学说的话:
“我发现自己知道的很多,但同时我也发现自己知道的还不够多”
这就是为什么编程是一个独特的职业。你必须不断学习。学得越多,你就越自信,但在学习的过程中,你会发现,用你的新知识去征服更多的东西。要渴望学习新知识,大量阅读(无论是你的语言/框架的文档、StackOverflow还是Dev.to),并让它变得有趣,因为在你的职业生涯中,你将需要学习很多东西。
收集知识!
当我遇到不懂的问题时,我觉得记录我的发现是个好主意。而最好的方法,至少对我来说,就是做笔记。我尝试过很多工具,最终选择了支持 Markdown 的Boostnote,不过后来我喜欢用 Visual Studio Code 作为我的笔记应用,因为它给了我一定的自由来组织和同步笔记。
我记录了所有的事情:商业语言、编程语言的新功能、测试和调试的方法、遇到的困难,基本上所有的事情。我向我的导师提出了很多问题,虽然我的大多数问题实际上都很愚蠢,但最终我终于开始明白了。我了解了商业语言和代码之间的联系,从那以后,我终于感觉自己成为了团队的一员!
不要害怕在这上面花费大量时间,因为这将对你的未来有所帮助。
放松!
失败没关系。我们都会不可避免地失败,而且会失败很多次。但每一次失败都是一次值得汲取的教训。你可以自由地尝试,当然,只要符合公司的规定,从错误中吸取教训,从而不断成长。
一些个人奖励技巧
舒适起来!
使用字体、主题、颜色和图标自定义你的编辑器。熟悉整洁的环境给了我信心,让我在用自己的设置进行编程时感到无比快乐。
行动起来!
我们程序员,一天中的大部分时间都坐在电脑前。开始运动吧——去健身房,散散步等等。这不仅能让你保持健康,还能让你头脑清醒。
休息一下!
如果你感到不知所措,别害怕休息一下!花无数个小时无助地盯着屏幕不值得。小睡一会儿,散散步,吃点零食,或者做点能让你暂时分心的事情。不要强迫自己解决问题 :)
这就是我的故事和我的技巧,希望你至少喜欢其中的一些,或者觉得它们有用!我很想听听你关于如何应对工作难题的个人建议!
鏂囩珷鏉ユ簮锛�https://dev.to/tomasmuzas/organizing-the-mess-in-your-head-171n