Some Complaints

✍🏼 Written on Jul 3, 2016   
❗️ Note: it has been days since this article was written, please be aware of its timeliness

Preface

The following rant has no logical structure—just random thoughts as they come to mind.

Learning at Work

The company encourages you to learn new technologies, but only after you’ve taken care of your actual work responsibilities. The company pays you to get things done, not to study. If you want to learn, do it at home. Some interns/fresh graduates complain about low pay, but the company and your colleagues are essentially footing the bill for your immature code. When you take forever to complete simple tasks, I’d have fired you long ago if I were the boss—just so you could focus on learning at home. Annoying.

The Help-Seeker Mentality, Lacking Engineering Thinking

Your first instinct when encountering a problem is to ask others instead of Googling/StackOverflow/GitHub/docs. Come on, you’re an engineer—act like one. What’s an engineer? Someone who solves real-world problems, not someone who dodges them or passes them off to others. To quote Steve Jobs, an engineer’s job is fix it, that's your job. Annoying.

Rambling Nonsense

When your boss assigns you a task, the goal is for you to deliver a result so they can make a decision—not for you to dump all the problems on them and expect them to analyze everything. For example, if the boss explicitly asks you to test compatibility/implementation feasibility and report back by the end of the day, what they want to hear at the end of the day is just a few simple words: 可以做 or 给定时间坐不了, 难点是 xxx. But some people respond like this: “Oh, this is pretty complicated. Some people online say it’s doable, but I tried and it didn’t work. But I have another idea—blah blah—and I tested it, and it kinda works but isn’t perfect. I still need to tweak it. Someone in the group suggested another approach, which seems viable, but I haven’t had time to test it yet.” And then more blah blah blah. If I were the boss, I’d fire you on the spot. Annoying.

Mindless Repetition

There’s a simple, repetitive task that requires knowledge slightly beyond your current skill level. For example, every time you start a new project, you manually copy some config files or resource files. Some people see this and think, “Eh, it’s not that hard,” and keep doing it manually. Can’t you write a Node CLI? Don’t know how? Then learn! If you can’t figure out CLIs, can’t you use existing tools like Gulp/Node/Ruby/shell to automate it? Is it really that hard? Mindless labor—are you even a programmer? Annoying.

Knowing the “How” but Not the “Why”

Some people obsess over learning plugins and brag about it. Today, they master a plugin and rush to forums to boast: “This plugin is amazing! I heard you guys are still using xxx?” Tomorrow, they learn a new API and brag in group chats: “This API is so good—xxx’s API design is garbage compared to it!” Meanwhile, in private, they ask basic questions like:

  • Are JavaScript function parameters passed by value or reference?
  • Does a return statement in a nested function exit just one layer or the entire outer function?
  • Can an if statement be broken out of using break/return?

Wow, you can use an API—big deal. Even an idiot can read docs and figure it out. How about mastering the basics first? Annoying.

Attention-Seeking

Some people rush to show off their half-baked projects to the world, begging for stars—specifically "求"—so strangers think they’re impressive. Annoying.

Reinventing the Wheel for No Reason

Not afraid to call it out—this one’s for Eleme. Instead of using Webpack like everyone else, you had to create your own Cooking bundler just to force others to adopt it and make yourself look smart. Do you understand the added learning cost? Annoying.

Pointless Company Criticism

“Our company is kinda xxx, and also xxx. Look at xxx company—they’re so xxx.” Complaining privately is one thing, but doing it in the elevator? Fine if no one’s around, but why do it when it’s packed? Trying to show off? If you spot a company issue, can’t you email your boss and CC the management? Annoying.

Noobs Bickering Among Themselves

As the saying goes, you improve faster by competing with masters. But some people encounter a problem, ask someone else who isn’t quite sure either, and then start blabbering in discussion, eventually arriving at a seemingly correct conclusion. Then the next time they face another problem, they ask the same person again. I think when discussing technical issues with someone, you can usually gauge their skill level within a few sentences. Once you realize this person isn’t technically proficient, why keep consulting them? Why not seek guidance from an expert instead? What’s the point of endless back-and-forth between the two of you? Can it compare to a master’s definitive conclusion? It’s just a waste of time and utterly meaningless. When you encounter a problem you can’t solve, simply explain your failed approach to an expert and ask for their advice. It’s efficient and provides an authoritative/conclusive summary that leaves a deeper impression.

It’s like the difference between self-study and teacher-led learning in school. When you derive a concept through self-study, you’re always uncertain and need to test it with other problems to verify its validity. But if the concept comes from a teacher, you don’t need further validation—you can apply it directly. If issues arise during application, self-learners first question whether their understanding was flawed, then whether they misapplied the concept, or even if the problem itself is wrong. But if the concept was taught by a teacher, the first assumption is that the application was incorrect, not the concept itself. As the saying goes: “I once spent a whole day in thought, but it was not as valuable as a moment of learning. I once stood on tiptoe to see farther, but it was not as good as climbing to a height for a broader view.” Amateurs bickering is just annoying.

Unprofessional

Being unprofessional at work means others have to compensate for your shortcomings, wasting everyone’s time and creating frustration. Of course, everyone starts from a place of ignorance, but can’t you at least learn from your mistakes? Or study how others work to avoid repeating the same basic errors? It’s infuriating.

PS: The above applies only to people and situations I’ve encountered in life and is not directed at anyone specifically. If you see yourself here, don’t take it personally. For any distress caused, send an email—I’ll consider taking responsibility depending on my mood.

PPS: If you fit every point mentioned above, my advice is to quit being an engineer/programmer/coder. Change careers early and reach the pinnacle of life sooner.

- EOF -
Originally published at: Some Complaints - Xheldon Blog