Hacker News new | ask | show | jobs
Ask HN: How do I become a competent engineer?
3 points by hx781 1100 days ago
How do I become a better engineer? I ask this looking back on my four years as an undergrad…and realizing that I sucked at pretty much every single lab class I had. I’ve done okay on homeworks and tests where I could read a textbook and see how a certain kind of problem was to be solved; and yes, sometimes I could take a new novel problem, sort of break it down, and then solve it with the tools/concepts I had learned. But the fact remains that in any lab class or homework, I am completely lost at what to do. Nearly every group member (though some won’t admit it) does the majority of the work at the end of the day, though I wish I could do more. When they ask me for help on how to debug something, I almost never can figure out a strategy of how to even identify the problem, much less figure it out. When they ask me for help to design something, I end up constructing either something that misses the requirements/specifications completely, or I end up with an overcomplicated mess which does poorly. I just feel intensely frustrated because I cannot seem to “figure out” what I am doing wrong – it feels like everyone around me has some sort of natural inclination, some sort of innate reasoning, which enables them to solve problems.

I don’t mean to suggest that I think they’re geniuses – I know I watch them struggle for hours to fix things at times – but I feel that if I were in their shoes, I would never be even able to do that much. I’ve tried asking them for advice, but almost all of them just try to make me “feel better”, or claim that they do not know what they are really doing as well – that I am “reading too much” into their actions, as it were. I agree that this is perhaps true for some, but there’s no way that they can be so successful without there being some sort of strategy, though they are perhaps unaware of it. So I want to ask you, how does one actually solve problems, in a systematic and clear fashion? How does one solve novel problems without the luxury of being able to read a textbook and learn how to solve them? I legitimately feel so lost and confused, and frustrated with engineering as a discipline – part of me just wants to give up and quit engineering altogether. Should I just accept that it is not my calling, that if I don’t think naturally in a certain way, it is not meant for me?

4 comments

You become a competent engineer by making sure that you understand cause and effects.

If you are currently not able to identify the cause for a small effect, start with something really small.

Maybe something like hello world.

What happens when that program runs? Who reads the file? Who compiles it? How does the processor run it? How does the output come back and get printed to the screen? These are the chain of thoughts that you need to go through.

Great programmers are built through only one path that is trial and error.

By trying new things and seeing what happens. After you have been burnt enough number of times because you followed something which other people said was good, maybe clean code or maybe React JS for example, only after that will you become a great developer.

The main thing here is practice makes perfect. Try doing a bunch of leetcode problems and see how you fare. Most of us flop it first time then keep practicing.

Although I feel like you seem to have a low opinion of yourself, try asking others on what they think how you did in your course and your result will speak for itself.

Becoming a good engineer is a career long achievement I wouldn't expect you to achieve this milestone until you've completed a few professional years.

Also what do you enjoy? Is engineering something you legitly enjoy?

I find it interesting, yes. I did not do it for the money; I don't think it's ever been the main thing that motivated me to do the degree (though of course I was indirectly influenced by that seeing how I know lots of people who use that as their motivation).

I also just feel embarassed because frankly, I can tell my class is supposed to be easy. Not drop dead easy, but it's not supposed to be super hard, and I still feel like I struggle too much. My university is okay, it's not ranked poorly (for whatever that's worth), but it is not a top tier university which would subject its students to incredibly difficult work. It very strongly feels that the stuff I am doing should not take too long (were I to do it myself in isolation, with only the internet to help me), but it feels like I need too much help from my friends and other resources. At times I cannot finish in time, and I need to resort to using their help to get through my assignment, and I absolutely hate it. I despise not being able to stand on my own feet. I don't mean I'm unwilling to accept help of any kind, because that's stupid, but I would like to feel that I would be capable to doing some part of things myself -- because I know I won't always have friends to help me.

Either you have too high expectations of yourself or you are not grasping the problem/syllabus . It could also be adhd, at this point not enough information. Taking initiative normally happens by itself, it's like your natural ability to prove you understand the issue and express the solution / work just happens.

Do you struggle with everything, even non course related stuff, did you struggle with this in school (different subjects)

For me it was working with other engineers, especially those outside my domain as well. You have to get a bit lucky for such opportunities sadly and the scope will still be limited. You cannot know everything, not even about the topics you specialize in.

If you haven't any unofficial tutors, start some projects. Exchange about a topic on the net can help too. Still remember that you cannot know everything and everyone had to learn how to solve certain problems. You get better with more experience.

I had someone working for me once who was hard working, pleasant, willing, but just not apparently able to do the sort of logic that programming needs. We spent many many hours working together on trying to change this, but to no avail. He's subsequently done well for himself on the management side I think.

It is just possible that your brain isn't wired for this kind of work, and to my mind there is no shame in that.

You're clearly a decent communicator, so maybe work on that.

Thanks for your advice, it's very meaningful to me to get any sort of guidance on this issue. Management isn't something I've ever really considered. A large part of me has always wanted to "stick my hands in the mud", and truly be one of the people that "built something". Not to denigrate managers in any way, they absolutely are important and contribute to a project, but they work at a level I never really wanted to. I suppose I should give it a try though, and see if I like it.

I do know that I am not very good at leadership stuff, from how my yearlong project in my university has gone. I don't quite understand politics or people much in general, and on top of that, I don't really get how to efficiently distribute work, maintain a big picture view of a project, or steer things in general.

Communications skills like yours are not just about management.

Writing, creating, composing, selling, marketing, etc, etc. Many many areas need the ability to get your point across as you seem very able to do.

And you seem to have more candour and introspection skills than most.

I hate to suggest this, but maybe you'd make a good honest politician also!

eventually, most builders who create something important become managers. Elon Musk is essentially a manager (ceo is still a manager). Steve jobs is a manager. etc