惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
AI
AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
U
Unit 42
腾讯CDC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
H
Help Net Security
Recent Announcements
Recent Announcements
P
Privacy & Cybersecurity Law Blog
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Heimdal Security Blog
博客园 - 聂微东
S
Securelist
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
Cisco Talos Blog
Cisco Talos Blog

Natalya Kosenko’s Blog

First six months of being a developer My dream to work as a developer came true My dream to work as a developer came true Enjoying Android development through pain Enjoying Android development through pain Life of a developer is not what I thought Life of a developer is not what I thought Dockerizing Next.js application Dockerizing Next.js application Little joys of engineering manager Little joys of engineering manager Failed to get freelance programmer job Failed to get freelance programmer job Study Master’s in NTU - continuation of my story Study Master’s in NTU - continuation of my story What it feels like to study Master’s in NTU Singapore What it feels like to study Master’s in NTU Singapore Writing Context Managers in Python Writing Context Managers in Python
First six months of being a developer
Natalya Kosenko · 2020-05-31 · via Natalya Kosenko’s Blog

Six months ago, the biggest dream of my past few years came true: I became a developer. Overall, it’s been great six months, and I never regret about my choice, but it was also very hard 6 months for me. In this post, I want to talk about my first six months of being a developer, mostly about challenges :)

The hardest thing was probably work from home. The company I work for switched to WFH mode since February. And what is “work from home” for a developer? On the one hand, nobody bothers you, nobody comes to your desk. But on the other hand, you also can’t come to anyone’s desk :). No face-to-face discussions with the team mates, no lunches together, no drawing on the white board, and when you have any dependencies (you have them always) you have to resolve them in chat.

Second challenge have been the amount of learning I need to do every day. I mentioned this previously in the article I wrote when I just became a developer. Now, after six months, the amount of learning is not getting any less yet. I can’t see I am going to stop learning any time soon. Unless I work only on a single project, and all I do is maintenance and no new features.

Past 6 months learning: Node.js, Golang, Java, TypeScript, Docker, Kubernetes, Pub/Sub, Google Cloud stuff (Cloud Functions, GCS, BigQuery), etc. Why I call it “challenge”, because I can’t take my sweet time learning new things, as there is job to be done. What is more, there is not always an expert around me, who I could ask when I have questions. Well, I was lucky with Kubernetes, one of my colleagues guided me a lot. I was lucky with Golang too, as my boss gave me a good book to read. But not always I am so lucky, still need to spend lots of time reading and watching online courses.

Another thing about learning is that there is no ultimate knowledge. Knowledge is elusive. Sometimes I feel like I know something. But then something happens (like production incident), and I realise that I do not know anything.

Third challenge for me is doubt. I constantly doubt my code: variable names, code structure, database structure, certain architectural decisions, etc. Even if I am satisfied with my code today, it does not mean I will be satisfied with it tomorrow. I am not sure if it is just me, because I am a relatively new developer, or “doubt” is something inherent to software development?

Another challenge is code reviews. Developer’s job is always under exposure. Every line of code developer writes is reviewed by other developers. Imagine if every email you write, or every presentation you do, or every call you join, is reviewed by someone else. And someone else telling you: “this paragraph in the email you should rewrite, because you already touched the same topic in the paragraph above, and btw you have typo in the line 22 of your email”.

Well, this is a good thing, you will learn how to write perfect emails and presentations (provided people who review your work give you valuable comments). But it also adds some mental pressure, knowing that your work will be scrutinized by someone, and that someone might have different opinion. Ok, so far I haven’t got any tough comments in my pull requests, it never happened that myself and reviewer completely disagreed about the approach. But still I have this “heart trembling” when sending my PRs for review :)

Last challenge I want to mention is “unsolvable problems”. In mathematics, there are hard problems that remain unsolved for years. In my team, there are some technical problems that are unsolved for a few months. Such problems are being treated by restarting servers or simply by ignoring them, because sometimes search for a solution might take days if not weeks, and there is not always a bandwidth for it. This is a really hard part for me, going to sleep and knowing that there is something not resolved. For example, since last Thursday one of our Node.js applications has been eating a large amount of CPU. No changes to the code, no changes to the infrastructure, and no ideas (yet) on how to resovle it. Sad by classic story…

But enough about challenges. If I met a few years younger version of myself, would I still recommend her to pursue a career of a software developer? Of course I would! Because all the challenges are forgotten when you see your code running in production. It’s like seeing people in the house you built, or seeing art piece you created in a museum, or seeing shadow of 100-year oak you planted. But even better.