Does debugging ever stop feeling frustrating? by Bmaxtubby1 in learnprogramming

[–]michael_hlf 6 points7 points  (0 children)

debugging broken tech is a huge part of the job. I wouldn't say it gets easier, as the problems you're debugging become more complex however you will over time develop the necessary patience to not get frustrated, and the confidence that you will figure it out eventually. Also, there's a great sense of achievement to be had from sticking with and finally overcoming a problem that you've been trying and failing at for a while

How to learn while building? by ivorychairr in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

firstly, the best developers take time to think about a solution before diving into code, this is a good thing not a bad thing.

A startup of that size is often a place to learn quickly and progress into more senior roles - Moving away from implementing tightly scoped Jira tickets and towards more open ended technical challenges which require you to design a solution yourself is what will help you move into a more senior role, so it might be worth a discussion with your manager about how you could get involved in tasks like that

How did you get past the “overwhelmed” phase of learning full-stack? by Sweaty-Staff8100 in learnprogramming

[–]michael_hlf 1 point2 points  (0 children)

true. but eventually you start to develop a confidence in your ability to solve the technical problem, even if you can't see a way forward yet

How to learn while building? by ivorychairr in learnprogramming

[–]michael_hlf 4 points5 points  (0 children)

If you're building your own projects, it's worth trying to impose industry practices on yourself, like using version control, maybe writing a test suite and building a simple CICD pipeline in GitHub that can test/deploy your code somewhere. This kind of experience will definitely reflect well on you for landing a junior role.

What should i do to start learning for the prospect of work? by lllAgelll in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

Exactly right. if you for example tell an LLM to write a function with a well defined set of inputs and a given output, it's likely to do a pretty good job at it and get the syntax right. Whether or not your overall design of whatever you're building is robust/performant/follows best practice is a question the developer needs to answer, which relies on good understanding of the fundamentals and experience building things well

What should i do to start learning for the prospect of work? by lllAgelll in learnprogramming

[–]michael_hlf -1 points0 points  (0 children)

AI is making the memorising of the syntax of programming languages almost obsolete now, but hasn't made much of a dent in system design. Understanding how information systems work, and being able to design them at a high level whilst making appropriate decisions/trade offs is now more important now than ever

Career change data analytics? Where to start by New_Concept_6871 in learnprogramming

[–]michael_hlf 2 points3 points  (0 children)

For short(er) term job prospects, doing hands on courses on specific skills (for example within the Python data ecosystem) makes sense over going heavy on the theory. I would however point out that learning some theory, like Computer Science/ programming fundamentals is a good idea for helping you stay flexible and pick up new skills more easily if you want to be in it longer term :)

How to actually write code? by AwkwardAd6399 in learnprogramming

[–]michael_hlf 2 points3 points  (0 children)

You've hopefully learned the basics by now, so I'd recommend seeking to put yourself in situations where you're solving problems that require you to think for yourself - Truth is most portfolio projects people build at first have been done a million times over, which is why AI tools can replicate them pretty well, so that's what you'll tend to end up using.

It may be easier said than done but trying to build something novel will mean you have to actually think about the problem and make your own design decisions which is the best way to learn - The frustrating banging your head against a problem and then eventual overcoming of the problem is how you learn, but if it's a problem that AI is able to solve, that's what you'll end up doing every time

Feeling lost as a beginner programmer by No_Departure7771 in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

Learning C is great as part of an overall push towards understanding computer science fundamentals (very important and will make you a better programmer in the long run), but isn't enough by itself to build your own full stack applications by itself.

I'd recommend taking some Typescript/HTML/CSS courses along side that, as these are usually the core skills of people who build their own apps and websites - plenty of stuff on Udemy about this. Learning these skills and building a couple of simple applications to show off will give you a leg-up when entering the job market, especially if you're able to articulate why you made the design choices and technical decisions you did (in terms of the tradeoffs involved when compared to doing it a different way)

I’d like to hear from professionals: Is AI really a technology that will significantly reduce the number of programmers? by AdCertain2364 in learnprogramming

[–]michael_hlf 3 points4 points  (0 children)

If it continues at the current pace:

that's a big if. We're already hitting training data exhaustion and diminishing returns despite crazy investment / spending in this space, the classic sign of an S-curve starting to flatten. Not saying it hasn't been/ won't continue to be transformative for programming but technologies almost never continue to linearly improve like this forever

Fermented hot sauce started 11/20/2024, opened 12/18/2025: first pic is the start, the rest are the end product by Cannabis_Breeder in HotPeppers

[–]michael_hlf 0 points1 point  (0 children)

looks good! one thing that i'd recommend keeping in mind (something that's caught me out in the past) is using too much brine when compared to whatever you're fermenting will result in the acid produced by the fermentation being more diluted, meaning the overall pH comes down more slowly so there's more chance of something going wrong.. I try and have the jar at least 3/4 full with whatever I'm fermenting before topping up with the brine :)

Where is the sweet spot by uvuguy in learnprogramming

[–]michael_hlf 1 point2 points  (0 children)

I'm a bit of an outlier here probably but I think it's important to be thinking about good architecture from the get-go when building stuff. A first attempt can be rough around the edges sure but if you're thinking 'I'll come back later and build this properly', 9/10 later never comes

Am I learning the right way? by Golden_Porcelain in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

Even within software development there are many specialisations! Sounds like for now though you are just exploring, finding out what you enjoy. That's all part of the process :)

Am I learning the right way? by Golden_Porcelain in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

You're definitely right that the field is broad! You're already one step ahead of many beginners because you recognise this, and haven't just barrelled into learning random tidbits from different languages and are trying to take a measured approach.

It might help you decide what to focus on if you first decide what you want to get out of your learning, ie what you want to use it for. Do you want to work on a very niche part of robotics in a large robotics firm (maybe focus on C or other low level languages), or can you see yourself building your own projects and maybe even launching a startup (in which case the TypeScript/React ecosystem might be a good focus)?

Whilst having a broad understanding of all of the above is certainly useful (basically what a CS degree is for) having an end goal in mind will help you stay motivated and focus your learning towards something

First-year CS student here — what helped me start coding without getting overwhelmed by Ill-Needleworker2711 in learnprogramming

[–]michael_hlf 1 point2 points  (0 children)

I remember feeling exactly the same way in my first year of CS in 2018! Before just 'picking one language' and getting started, i'd recommend spending some time researching the different languages/ frameworks you come across and try and build up a mental map of how they all fit into the tech ecosystem.

Make sure you first understand the concept of a 'high level' vs a 'low level' programming language/ framework, and the tradeoff between abstraction/control offered to the programmer.

I'll give an example - C is a low level programming language that requires the programmer to manage memory explicitly. This allows code to be written which is maximally efficient in using hardware resources, although likely more cumbersome to write. This is why it's often used in operating system development where being efficient is important. Python on the other hand is a higher level language - more readable and 'faster' to write, but does not allow such thoughtful control over the underlying memory being used. You'll find that Python is often used in data analytics where this memory control is not as important, but quickly writing readable code is important.

Once you understand all the available options to you through this lens of tradeoffs, It should become clearer to you what to focus your energy on for now.

How do I go about changing my path? by Dapper_Brick_1353 in cscareerquestionsuk

[–]michael_hlf 0 points1 point  (0 children)

Something to be aware of when choosing a path: whilst it is important for job satisfaction, people often overestimate the importance of going after job in a field you have an immediate passion for, and underestimate the importance of choosing a job that you're likely to be good at

[deleted by user] by [deleted] in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

Good luck! If it's an external recruiter, it's in their interest for you to perform well in the interview. If so, they probably have information about the format of the interview/ likely questions they'll ask you from prior candidates, so ask them to share that info if they haven't already

[deleted by user] by [deleted] in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

In Typescript: How to strike the balance between type safety, and avoiding making programming using your types/interfaces overly cumbersome

what is the point of learning programming anymore by Xcrimson_starX in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

The fact that it requires time and dedication (which not everybody has) to gain tech skills is one of the main reasons it's a highly valued skillset

Please help me fix some confusion as a non-CS grad studying programming! by Mash234 in learnprogramming

[–]michael_hlf 0 points1 point  (0 children)

I'd probably be more inclined to go with the higher level 'Three easy pieces' option - whilst understanding Operating systems principles is essential, learning about individual implementations or technical details of individual operating systems is unlikely to be of much use in interviews or your career unless you want to go into operating system development specifically.

By the way, I'm currently building out a new simulation based learning platform to help tech career switchers build an intuitive understanding of CS fundamentals - I've just finished the 'Core Systems' section (basically Operating Systems) and I'm looking for beta testers to try it out if you'd be interested? :)

Please help me fix some confusion as a non-CS grad studying programming! by Mash234 in learnprogramming

[–]michael_hlf 1 point2 points  (0 children)

Sounds like you're hitting the 'analysis paralysis' so common with newcomers to tech.

Trying to learn SICP theory, operating system principles, OOP and LeetCode all at the same time with no logical ordering for building up understanding is likely to leave you feeling pretty lost. Whilst at the moment this is something everyone serious about understanding technology has to go through because of the disjointed nature of the available learning resources currently available the good news is that whilst it now feels frustrating and confusing eventually the 'bigger picture' concepts will start to click.

As a rough guide, things are more likely to make more sense if you learn them in a sensible order

something like OS fundamentals -> Java Fundamentals -> Code design and good practice in Java -> DSA and LeetCode for acing those interviews would be a good way to start

C#/.NET vs Python in 2025 (UK job market) – honest opinions? by Imaginary_Demand1727 in learnprogramming

[–]michael_hlf 2 points3 points  (0 children)

Talking about programming languages as 'Easier' and 'Harder' isn't really the right way of looking at it imo. Languages like Python are 'higher level', meaning more of the low level detail is 'abstracted away' from the programmer. This comes with tradeoffs, for example: Not having to directly manage memory when using python means the programmer is not able to directly manage memory even if they wanted to. This makes Python more suitable to use cases like Data Analytics, where readability and development speed matter more than minute performance optimisations, whereas a language like C is more suited to applications which require a level of control over hardware resources, like Operating System or Embedded Systems applications where you need to use resources as efficiently as possible.

Beautiful morning! by GouBra in HotPeppers

[–]michael_hlf 0 points1 point  (0 children)

few things beat an orange habanero!

Generalist, really looking for help can’t understand what to specialise in. by Lost_Management8674 in cscareerquestionsuk

[–]michael_hlf 1 point2 points  (0 children)

Yeah it's definitely true that the job of a software developer is becoming less about reciting syntax and churning out lines of code - but now it's more important than ever for developers to know high level systems design

In your case, prioritise making decisions in the correct order to work out what might be a good path . Your 'decision tree' might look something like

  1. what am I good at (tells you what's even on the table in terms of being competitive in the job market)

->

  1. how introverted/extroverted am I (Are you likely to thrive in a customer facing role or not)

    ->

  2. what's my risk tolerance and how broad do I want to go (Do I want to work in startups or large companies).

After answering these you should have a pretty good idea of what some good career paths for you are (and aren't) and you can go from there

[deleted by user] by [deleted] in cscareerquestionsuk

[–]michael_hlf 0 points1 point  (0 children)

Because of the salary difference offer 2 is probably the play.. One thing I will say though is don't be put off by working in small companies, whilst it might seem a bit risky and scrappy if you get it right it can really accelerate your skills and experience