Hi,

My question certainly stems from the imposter syndrome that I am living right now for no good reason, but when looking to resolve some issues for embedded C problems, I come across a lot of post from people that have a deep understanding of the language and how a mcu works at machine code level.

When I read these posts, I do understand what the author is saying, but it really makes me feel like I should know more about what’s happening under the hood.

So my question is this : how do you rate yourself in your most used language? Do you understand the subtilities and the nuance of your language?

I know this doesn’t necessarily makes me a bad firmware dev, but damn does it makes me feel like it when I read these posts.

I get that this is a subjective question without any good responses, but I’d be interested in hearing about different experiences in the hope of reducing my imposter syndrome.

Thanks

68 points

With about 12 years in my primary language I’d say my expertise is expressed in knowing exactly what to Google…

permalink
report
reply
27 points

This is probably the true highest level of expertise you’ll get out of most professional coders.

It takes a real monk level of confinement to understanding the language to break out of being proficient in looking shit up and start being proficient in being the person that writes the shit people are looking up.

permalink
report
parent
reply
25 points

I’ve learned a lot by breaking things. By making mistakes and watching other people make mistakes. I’ve writing some blog posts that make me look real smart.

But mostly just bang code together until it works. Run tests and perf stuff until it looks good. It’s time. I have the time to write it up. And check back on what was really happening.

But I still mostly learn by suffering.

permalink
report
reply
12 points

But I still mostly learn by suffering.

That resonates so much. Almost every time someone is deeply impressed with something I know, it brings back a painful memory of how I learned it.

permalink
report
parent
reply
3 points

I really like brain twisters. It can get frustrating at times, but it’s the most fun out of the profession to me.

permalink
report
parent
reply
18 points

Knowing the footguns in your language is always useful. The more you know, the less you’ll shoot your foot.

permalink
report
reply
6 points

I think that one of my issue is that I’d like to be more knowledgeable to the smaller bits and bytes of C, but I don’t have the time at work to go deeper and I don’t have any free time because I have young kids.

permalink
report
parent
reply
9 points
*

I don’t have any free time because I have young kids.

That’s a healthy thing to acknowledge.

It’s a brutal phase for professional development, hobbies, free time, sex, basic housekeeping…

It gets better as the little ones grow.

permalink
report
parent
reply
3 points

At least, we know emotionally that it will get better with the second one haha, even if the day to day is rought.

With the first one, it felt like we would never get to the other side of it. But we did and we will for the second one.

I am eager to learn new things, so having so little free time is definitely tough. And the lack of sleep/energy makes it even harder.

Thanks for the encouragement, it’s nice to be acknowledged by someone else that went through the same thing. We often forget that we are not alone and a lot of people got through it before us.

permalink
report
parent
reply
4 points

I don’t know about your workplace, but if at all possible I would try to find time between tasks to spend on learning. If your company doesn’t have a policy where it is clear that employees have the freedom to learn during company time, try to underestimate your own velocity even more and use the time it leaves for learning.

About 10 years ago I worked for a company where I was performing quite well. Since that meant I finished my tasks early, I could have taken on even more tasks. But I didn’t really tell our scrum master when I finished early. Instead I spent the time learning, and also refactoring code to help me become more productive. This added up, and my efficiency only increased more, until at some point I only needed one or two days to complete a week’s sprint. I didn’t waste my time, but I used it to pick up more architectural stuff on the side, while always learning on the job.

I’ll admit that when I started this route, I already had a bunch of experience under my belt, and this may not be feasible if you have managers breathing down your neck all the time. But the point is, if you play it smart you can use company time to improve yourself and they may even appreciate you for it.

permalink
report
parent
reply
1 point

I work in a startup, so I’d say that almost every day, I learn something new. So I don’t really need to look in-between tasks because a lot of tasks bring new challenges.

When I worked in corpos, my job was restricted to the same tasks and specific knowledge. Now it’s the opposite where I need to learn what I need to create a feature or fix an issue.

I guess that lately, a lot of new things have popped up and I need to absorb a lot of information to implement the features I need. And that is probably what is triggering the imposter syndrome.

Thanks for the insight, it is appreciated.

permalink
report
parent
reply
2 points

There’s a lot to talk about from this point alone, but I’ll be brief: having gone through university courses on processor design and cutting my teeth on fighting people for a single bit in memory, I’m probably a lot more comfortable with that minutia than most; having written my first few lines of C in 10 years to demo a basic memory safety bug just an hour ago, you’re way way ahead of me.

There are different ways to learn and gain experience and each path will train us in different skills. Then we build teams around that diversity.

permalink
report
parent
reply
2 points

Thanks for the insight. I guess one thing that causes my imposter syndrome is that I want to know how everything works in details.

I agree that for other people, what I know seems like magic to them. It’s easy to look at what we don’t know, but we don’t take the time to appreciate how far we’ve come. We should do that more often.

permalink
report
parent
reply
16 points

how do you rate yourself in your most used language?

I know things that no human should have to carry the knowledge of

Do you understand the subtilities and the nuance of your language?

My soul is scarred by the nuanced minutia of many an RFC.

in the hope of reducing my imposter syndrome.

There’s but two types in software - those who have lived to see too much…and those who haven’t…yet.

permalink
report
reply
14 points

After almost 12~15 years of programming in C and C++, I would give myself a solid “still don’t know enough” out of 10.

permalink
report
reply
2 points
*

After almost 12~15 years of programming in C and C++, I would give myself a solid “still don’t know enough” out of 10.

That resonates so thoroughly.

And while it can 100% also be the case in any tool or language, it’s somehow 300% true for C and C++.

permalink
report
parent
reply

Programming

!programming@programming.dev

Create post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



Community stats

  • 3K

    Monthly active users

  • 1.7K

    Posts

  • 28K

    Comments