今日推荐英文原文：《Non-Technical Skills That Help Developers》
推荐理由：这个项目是一个使用 PyQt5 来完成的带有图形界面的视频剪辑软件，它并不像其他专业软件一样拥有许多非专业使用时用不到的功能，而是集中于平时简单处理视频常用的功能上，同时图形界面也使它比命令行界面的 FFmpeg 更便于使用。除了常用的合并分割视频等需求外，这个项目还提供了诸如调用别人家 API 来完成的自动生成字幕等拓展性功能，使得其用途更加广泛。
今日推荐英文原文：《Non-Technical Skills That Help Developers》作者：Maxim Chechenev
Non-Technical Skills That Help DevelopersHow many new and unknown things there were when I started my career as a developer! The technical side was more or less clear, but everything about processes, internal communication, behavioural things, and so on was new. I learned most of these things by trial and error.
I like to do some kind of self-reflection about my experience. It helps me to see how I end up where I am now. Looking back at my knowledge, I highlighted a few pieces of advice that I wish I had known before. It’s a mix of non-technical and behavioural skills.
1. There Is No Such Thing as a Dumb QuestionI had this thing. I got my first job as a junior developer, and I was proud and happy. But I also had imposter syndrome — I knew that my skills and knowledge were quite low. And I didn’t want anyone to uncover that.
So whenever I had anything that blocked me or something difficult, I was trying to solve it myself without asking for help. Or I was too shy to ask my questions, especially in front of a group of people. “They will think that I’m an imposter. Hide it, Maxim!”
But in fact, it’s the opposite.
People wait for questions from each other, and these questions are not stupid, they are just regular, typical questions. No one expects that you know everything; it doesn’t matter if you are junior or senior. It’s a part of working in the team — to communicate with each other, ask, and help.
Don’t be afraid — just ask all questions that you have.
2. Don’t Take It Too SeriouslyIn most cases, we work in companies where your mistake will not affect someone’s life. Ninety percent of developers don’t work on building software for airplanes, self-driving cars, medical devices, etc.
Usually, we just move JSONs from one place to another. If my code doesn’t work correctly, no one will die and no nuclear station will explode. Someone just will not be able to load funny cat videos or send dating messages. Or their Instagram feed will be down for ten minutes (how can people even survive it?). Fancy fashion brands will not be able to show their new banner. That’s ok — people can survive it.
Sure thing, the IT industry looks fancy and essential; we have many modern devices and shining technologies.
The round-shouldered developer (no offence, it’s just an image of myself) is a new sportsman, new astronaut, new rock star. People invest vast amounts of money in us round-shouldered people! Of course, we start to think that we are doing something significant and severe. But after all, in most cases, we just do a servant’s job. We help transform someone’s ideas into the product by moving JSONs from one place to another.
3. Be Yourself, Don’t PretendWe all have the values that we believe in. What we are looking for in others. What we respect. Our passions.
Corporate life can have a significant impact on it. It can change your motivation, sacrifice your values.
I worked in a company where we were doing nothing for months but got paid. “What a dream company!” you can say.
But it was incredibly dull and killing me. I could just go to the office, pretend that I’m doing something. Nothing happened there at all. It’s sad, as I saw so many problems and possibilities in our product, but no one cared. I wasn’t able to do a thing because the whole environment was passive and offensive. I had no power and no support to change it.
I couldn’t take it, and I left that company. I was just spending my time for nothing. My life has a value and a purpose, and I won’t spend it in places where no one cares about anything. I don’t want to lose my energy and passion. My experience and knowledge have value, and I won’t spend my time in places where no one cares about me. I’m not just a little man without a voice in a vast corporate machine.
And I firmly believe that people enjoy it and respect it when you follow your values.
4. We Build Products, Not Just CodeDevelopers don’t just sit in the dark corners of the office and write code. Sure, the outcome of our work is the code converted into a product.
But what is a product?
It’s an idea that is solving some problems — real human problems, not machine problems.
Usually, there is user research, there is a business plan for how to make money, and people check markets to find a niche for this product. It’s way more than just lines of code. It’s an attempt to solve something, to make some parts of our lives better.
“So what is the deal? I’m the one who can transform this idea into a working solution,” you ask.
And the idea is to always think about the work from a product perspective. Am I doing the right things that users need? Will this feature degrade application performance? How do I know that this task will improve something? And a lot of similar questions are extremely beneficial to ask yourself. Because when you start to care about the product, you and your team can achieve great results.
Great ideas should not come top-down only. Anyone should be able to propose an idea.
5. Respect People, Not TitlesPeople with titles like “lead developer” or “senior developer” look wise. They are great teachers who always help you and find the best words to motivate you. Gods who fix bugs by just looking at a display. Your best friends who would never let you down.
The title doesn’t mean a thing (well, in 50% of cases).
Sometimes you work with people who don’t want to help and teach, who are arrogant. People who love corporate political games. Who even don’t have excellent and friendly communication skills.
Who knows how they get this title? Maybe they were the first engineer here and have been working here for ten years. Or perhaps they know how to show their best during the interview. Maybe they are just a good developer who wants to code more than to talk to people.
Different companies have different definitions of seniority level. For some, it’s fine to focus more on technical skills, and some companies care about soft skills. And that’s fine.
The point is this: Never judge people by their position in the company, and don’t have high expectations just based on the title. Find the right people, those with a decent character. Be respectful to these people, and you will be great friends (who cares if it’s a junior developer or a receptionist?). Respect people.
6. Soft Skills Are EssentialWhy do I need these? Why do I need to communicate with someone else? Can’t I just talk to my computer in my very own way?
I doubt it. The IT industry is not an industry of grumpy, bearded men who barely know how to talk (except how to talk to computers). I’m not sure that it ever was like that.
We work in teams, and we work with real people with their mindset and characters, which usually are not the same as what we have. We need to consider that we are all different.
Working communication is not just informal talks during lunch about the latest Netflix show or weekend plans. We need to talk to each other healthily at any meeting, and in corporate messages and emails.
There are multiple reasons to do this, but the most important is that people work better when they can trust each other and communicate pleasantly. You don’t need to be a friend with everyone; no need to have drinks after work. But we need to respect our colleagues and help without aggression and any toxicity.
Otherwise, if I cannot talk healthily, people will ignore me and avoid my opinion. The team itself will become less efficient. And I can forget about any kind of promotion or salary raise.
7. Always Negotiate the OfferInterviews are exhausting. You spend a lot of time and energy, and you make a real effort to do it. So when it comes to the offer part, it’s easy to think that it’s finally done. That you just need to sign it and have a rest.
The very last step is negotiating. You get your offer, and then you discuss it. It should not be scary at all. Because a company is interested in hiring you, they also spent a lot of time making this interview process.
I’m not saying that you should go wild and ask for a 50% higher salary, but there is always room to negotiate. Maybe not a salary, but additional perks, holidays, contract length, stocks, etc. The worst-case scenario — the company just says no to your request, but they won’t withdraw the offer.
Stay polite and friendly, and negotiate the offer. It will not hurt when you hear stories from your next colleagues that they have better contracts only because they arranged them.
8. Don’t Burn BridgesStay professional when you leave a company.
Don’t make any conflict, don’t blame anyone, don’t write aggressive and offensive farewell emails. Yes, of course, sometimes you are right, and that nasty message would be fair, at least for your dignity.
Life is unpredictable. The IT world is tiny, and you never know who you will meet again as a colleague or even a boss in the future. Your next employer can do a reference check and call that company that you just left.
It’s better to keep a respectful and professional relationship with your ex-companies even if you hate that place and everyone there.
9. RestNo one is complaining that he didn’t work enough when they lie on their deathbed.
Don’t forget to rest. Disable work notifications on your phone (especially when you go on vacation). If something needs your attention, people will call you on your phone.
Continually checking the working Slack is a terrible habit, as you won’t stop thinking about work. But your work is not your life. Think about your hobbies, family, pets, friends, etc. If you like coding after work, that’s fine as long as you are not doing work things.
Take care of yourself and your health.
Thanks for reading!