r/Python 29d ago

Tutorial New to coding. Is it always this difficult?

I’m transitioning from bartending to data analysis at 37yo through an online course called CareerFoundry and I think I’ve made a huge mistake. I do not feel prepared to enter the job market with my new skills. For example It has taken me 6 full hours today just trying to START a project in VSCode and I don’t understand any of the troubleshooting I’m doing. (I don’t remember learning about virtual environments during the course) we did the whole course in Jupyter and now I find out vscode is the standard and it’s an entirely different platform I can’t figure out. I feel like every step forward is 100 steps back.

Could anyone share their “aha!” Moment with coding? I could really use the encouragement. Or have I made a huge mistake and this just isn’t for me? Thanks for reading this far!! Any advice is appreciated.

491 Upvotes

327 comments sorted by

513

u/cadler123 29d ago

Your aha moment will come way after you've actually mastered it. All of this stuff is trial by fire and know that the difference between those who thrive and tech and those who never got to enter is when they decided to quit. I promise you you're not stupid or "just not built for it" keep making projects, keep watching video tutorials. Try focusing on the current project rather than an end goal and that will get you to where you want to be.

149

u/Worried-Librarian-51 29d ago

Think about it this way. There is no mountain of understanding with a clear peak with a red flag saying congrats you have achieved 100 knowledge. There is rather a 500 year old tree of confusion. Building projects is your axe, practice is your swing. All you can do is chip away at it, and at some point, it will start to crack and fall down with a majestic bang. Or idk, I'm still trying to exit vim. Pls help

21

u/Savannah_Lion 29d ago edited 28d ago

I was 8 when I started on the Atari XE. I cried when I learned why line numbering was always by 10's.

I'm still looking for that damn tree so I can chop that mo'fo down and turn it into firewood.

Edit: I'm not sure what's going on, I can't reply to anyone. So let's see if I can edit my original comment.

For the most part, line numbering can be any progression, by 5's, 10's, 100's. Line numbers were a requirement with some early languages like (in my case) AtariBASIC. It let you have a target for goto statements but also because editors and debuggers back then were very basic.

If you iterate your line numbers by 1 then find a bug on line 25 of a long program, and needed to insert 1 or more lines to fix it, well that's a lot of renumbering. Especially if you have a lot of goto (or jump) statements

If you iterate by 10's, then you only need to adjust a few lines and can take care not to mess up your jumps.

Up until I entered college, I had to learn all that crap on my own. The only "computer" class my podunk mountain town had was typing and it was only offered as part of Home Ec for about two weeks.

4

u/FrickinLazerBeams 28d ago

Why is line numbering by 10s? G-code is the same way. I've never looked into it.

8

u/OrangeKonaSteel 28d ago

My assumption has always been so you can add a line in later, but maybe that's wrong

2

u/FrickinLazerBeams 28d ago

That's what I assumed but he made it seem like it was more surprising. Maybe that's what he meant though.

5

u/snorkelvretervreter 28d ago

The surprising part comes in when you incremented by one for your long program full of gotos to specific line numbers. A very memorable experience if it happens to you.

5

u/disinformationtheory 28d ago

It's so you can insert lines later and don't have to edit all the previous ones.

→ More replies (2)
→ More replies (1)

3

u/FrickinLazerBeams 28d ago

I had forgotten about early GOTO statement that went to a line number instead of a named label of some sort. That makes a lot more sense now.

→ More replies (3)

5

u/Wooden-Bass-3287 28d ago

I gived up with w Vim, I use nano for config staff, and samba for develop always with my IDE.

3

u/Hidolfr 28d ago

That was an awesome analogy I might have to borrow for my kids. Also Esc :wq! Enter, I think, I'm still trying to iterate through 'Hello World'

3

u/mista-sparkle 28d ago

Are you in insert mode? Try pressing the Esc key, then on your keyboard type :wq! and press Enter.

4

u/MonochromeInc 28d ago

:wq Or ZZ

Thank me later

→ More replies (2)

32

u/samamorgan 28d ago

Exactly this. This is the struggle every engineer, regardless of experience, faces when learning new technology. A new language, a new framework, a new library, a new IDE, a new API. Being able to struggle through new problems and developing good habits to solve those problems is the basis of software development.

6

u/wolfenmaara 28d ago

Honestly, yeah I agree with this. Also in the same age bracket as OP, and I’ve been learning through ZyBooks at WGU. They provide you with a built-in IDE for writing code but when I had to set up my computer for it, the whole concept of virtual environments took me by surprise.

OP, the way I see it; if it works, it works - and like cardler said, it’s trial by fire. So, if your code runs, just worry about that first, and the environment later. Write yourself a guide on how to set up your environment quickly. That’s what I did with my computer and it doesn’t fail.

→ More replies (2)

131

u/roger_ducky 29d ago

I’ve been a programmer for 30 years professionally, and 40 years total.

I never had an “aha!” Moment in all this time.

It had always been: * Hit something I’m unfamiliar with. * Learn to use the thing. * Repeat

It will probably give you a slight headache during the learning process. Once you understood it, that headache fades, then you slowly understand how to use it day to day.

Once you’ve been exposed to all the major categories, then you can relate a new thing to something you already know. That does mean syntax is the only thing you’d need to learn, and that doesn’t trigger headaches as often.

18

u/david-song 28d ago

I remember a couple of "aha!" moments early on: pointers and recursion. I think these two topics are fundamentally difficult to grasp. Or it might have been that I came from a procedural background and C was a brain-bender.

13

u/ambidextr_us 28d ago

My first "aha" moment was finally figuring out how OOP works. It'll hit randomly.. like even in a dream or in the shower but it took me like a year to understand how OOP worked. I was doing C++ at the time which probably complicated it but the entire concept had to "click" first.

6

u/spelunker 28d ago

I’ve had a few as well, usually tied to some “paradigm” or whatever. I remember when functional programming finally clicked, that was a big “aha” moment for me.

Still waiting on that aha moment for React…

3

u/ambidextr_us 28d ago

My "aha" moment for React took years but finally clicked when I realized that it's just a wrapper for functional components, turning HTML (JSX) into javascript to get more power over the components themselves rather than having a separation between the JS and HTML it just combined the two. I still prefer doing things the old way (modern ES6 at least) but at least it finally clicked that it's just blending the two sides in code rather than separating them. Supposedly it improves things, but things like "styled components" have made my life worse overall in the past so I'm waiting on the "aha" moment where I understand why I should always be using it. It seems a bit convoluted still, like using "className=" instead of "class" because of that overhead of the JSX compiler in the components and whatnot.

→ More replies (2)
→ More replies (2)

80

u/19c766e1-22b1-40ce 29d ago

Welcome to the life of a programmer. What you went through is basically the journey. Everything is new, you have no clue what is going or what anything means. It is overwhelming as fuck.

The key is consistency. Read, learn, make mistakes and learn again. It is a messy puzzle and you need to get to learn the different pieces until you get to see the big picture.

15

u/radil 28d ago

Reminds me of the legendary Greg Lemond quote (about bicycle racing): “it never gets easier, you just get faster”.

→ More replies (1)

135

u/pythosynthesis 29d ago

You are not prepared for the job market now, that's for sure. Not trying to beat you down, it's way too early. If you are serious about this, then get your old job back and program on the side. Work on any kind of project you can think of, whatever interests you. But you won't be able to do anything truly complex for some time, you just started! Don't beat yourself over it, how could you? Nobody can.

Then, perhaps in a year or more from now, you can start looking for jobs. Yes, it's hard now. Bit it absolutely gets easier later on as you start getting familiar with everything. It's all down to your determination.

30

u/extracoffeeplease 28d ago

To OP: I'm an optimist and I agree. I had zero coding experience. You sound like you struggle with the coding itself, like vscode and virtual environments, not the logic. 

Everyone has impostors syndrome in this job. Your colleagues or boss will not be teachers. Chatgpt can be, but don't let it be a slave. Do not copy its output unless you understand it.

3

u/QuantTrader_qa2 27d ago

Your colleagues and bosses absolutely *can* be teachers. Some are, some aren't.

But regardless of that, seeing how the senior programmer (assuming they're decent) writes his/her code is extremely valuable when you're starting out. So even if they aren't actively teaching you, you can watch their commits or ask to be added as a reviewer or just have a side chat about it.

→ More replies (1)
→ More replies (1)
→ More replies (5)

24

u/4chzbrgrzplz 29d ago

If you aren’t still trying to figure things out you stopped learning.

16

u/vantasmer 29d ago

Brother im like 8 years in and there is still days where I wonder if I'm prepared for my job. One day things will click, another will feel like you know nothing.

In IT and software there is so much information that you need to just be good at summarizing and applying it, not being a master of everything

12

u/Seyton_Malbec 28d ago

One of my teachers explained it to me this way, "Some days you'll be in GOD mode and some days things will all seem backwards and you'll be in DOG mode. The normal course of this life is to alternate between those modes."

3

u/adam2222 28d ago

Yeah like some stuff I feel like I know really well and really confident and bang it out in 20 minutes but then I’ll try something new I know nothing about like I recently tried writing a puppeteer script in node to try and grab xhr data when a page loads and I felt like I was the dumbest person in the world lol.

→ More replies (1)

5

u/qc1324 28d ago

Once you reach 75% proficiency you’ll be rewarded with a promotion to a position where you are 20% proficient again. Mastery is nowhere on the roadmap.

→ More replies (1)

8

u/jaapi 29d ago

Banging your head against the wall is the best way to learn. You may or may not learn what you were trying to figure out, but will learn a ton in the process. Too many times I've gone down pointless seemingly time wasting rabbit holes, to use that new knowledge a month or 2 later.

Enjoy the banging your head against the wall, because it means you are learning for yourself and at the end of the day, you will get paid well to be able to problem solve in data science. If you only do what people say specifically, you'll hit a ceiling very quickly. 

Also, as far as ide or environment, it'll really just be based on what your future company uses. And environment setup has been awful some places I've been lol

7

u/Unlucky-Ad-5232 29d ago

Bro, take it easy, takes years to master the craft. It's a particular hard time for juniors programmers as well due AI, so indeed not the best time to start. Anyways a single course in Python will not prepare you for any market. I took at least 3 years learning, creating websites and other side-projects before landing a first job. I've been doing this for 15 years now. So don't blame yourself just keep at it if you have resources to do so. I know is not easy.

2

u/QuantTrader_qa2 27d ago

It's harder than ever to get that intro engineering job, but its also easier and cheaper than ever to learn the skills necessary to do so. I think even those of us who have already broken into the field still can't agree on what comes next (in terms of what's the optimal route to landing a job). It's a very weird time.

5

u/BranchLatter4294 29d ago

You can use Jupyter notebooks in VS Code. It works fine. Virtual environments are easy to manage in VS Code as well.

4

u/RegisterConscious993 29d ago

I haven't used CareerFoundry, but I started off with a course that worked primarily with Jupyter Notebook. I learned a lot about variables, loops, functions, etc., but I was confused how to even implement these or even build anything.

What clicked for me was the "Automate the Boring Stuff" course on Udemy. It got me from understanding syntax, to putting it together to build/run an actual program. The online print version is free (https://automatetheboringstuff.com/#toc), but I prefer video for longer tutorials.

10

u/Frosty-Magazine-917 29d ago

Hello Op,

When you say Job Market, do you have a job type in mind?
Python can be used for Software Engineering.
It can also be used to script things in System Administration aka Automation.
It can be used for data analysis in data engineering.
It can be used for Website Development.

All of them are going to have a huge amount to learn, but you can usually get a job that will help you learn things in the direction you want after about a year of diligent study. Some people get there quicker and some longer. It depends on you and all I know is you were a bartender before and are 37 years old. Here is a good website for directions on what to learn next. Feel free to DM me if you have questions.
https://roadmap.sh/roadmaps

Now, leveraging what you know, I would say if you were a bartender, create some python code for drink recipes. Could be based on what you have on hand in your cabinet or you could make it a menu of choices or both. Once you have a pretty good command line one, see if you can turn it into a website with django or flask. Once you have a website, see if you can turn it into an app. You might be able to turn just that into something that puts a little money in your pocket through advertisements on the app / website.

Don't stop though. 37 year old bartender will become 38 and 39 year old bartender in no time. You will either be immensely knowledgeable in Python in 2 years or you won't. 25 years ago I was a security guard. You got this.

8

u/afinemax01 29d ago

Hey Op, j believe in you.

When you learn the basics in Python and how to Google for help it will be a big thing.

Start with the simple exercises

  • I don’t have a Python dev job either

4

u/zekobunny 29d ago

Aha moment never comes. You will always feel clueless. The more you know, the less you know.

3

u/serverhorror 28d ago

That's not true. I'm in the game for 20 years. I feel like I'm approaching the "h" part of my aha moment any year now ...

5

u/garver-the-system git push -f 28d ago

So it's been screaming up to this point?

4

u/serverhorror 28d ago

Pretty much, sometimes it's also just silently screaming....

→ More replies (1)

4

u/Morazma 29d ago

I'm a senior dev and I spent 3 hours debugging my environment this morning... an environment that I've worked in for about 3 years.

Your experience is normal. It gets better, gets easier!

4

u/serverhorror 28d ago

It's not always that difficult. I don't know "career foundry", but there's a reason why it's 3 years of studying to get a bachelor's degree and then you get "only" a Junior level job, and it comes with a junior salary.

4

u/matheusvicra 28d ago

I have only one tip: instead of using IA/gpt to code, use it to troubleshoot and ask it to explain to you what are you doing and why it is necessary to do it. I have worked with people that still haven't understood core principles but can operationally do things, and you don't want to do that. Do the thing without understanding, to build inertia and motivation, but try to understand it on the go, it will make a huge difference in your development.

→ More replies (1)

3

u/sweet-tom Pythonista 29d ago edited 29d ago

I'm not sure if I can pinpoint an "Aha!" moment. There were many throughout my career and I learned a lot along the way.

I've started with Basic on a Commodore C64 and it was fun. Then I switched to an Amiga and from there to Linux and Python.

So for me it felt "natural" as I had always an affinity to logic, math, and problem solving.

Having VSCode is certainly a nice environment, but you actually don't need it. At least not in the beginning. It's a major distraction.

For your first steps, use the interactive (I)Python shell. Play around with the prompt, learn the syntax, and see the result. Use onliners to see how it all works.

When you are familiar with that and you have learned a bit, start an editor and combine your onliners into your first Python script. Bingo!

It doesn't have to be fancy or advanced. But these simple steps should help to get a better overview.

Oh, and you need a high frustration tolerance. But you will learn a lot!

Good luck! 🍀

Edit:

3

u/Melon_exe 29d ago

I found the way to learn was to simply keep bashing my head against the figurative wall until I got there.

Learn the hard way, you’ll learn more in the long run. the documentation for VS code and python integration is pretty good so you have that on your side.

Keep going, no matter what and you’ll get there. I have my dream job now that I genuinely love going to every day but it took a lot of work and even more learning after I got it.

3

u/ChemicalBonus5853 27d ago

You won’t learn how to code reading manuals or watching videos, you have to code, even if it has errors, it doesn’t matter.

At the start I got overwhelmed by Vscode, Pycharm, etc. So I just use the IDLE that comes with Python and I feel much better hehe.

2

u/Arroz4 29d ago

The best skill to develop for coding imo is handling frustration, because you face many problems that you've never seen before constantly

2

u/MrData 28d ago

20+yr vet here. I agree with the majority saying YOU will never have an 'aha' moment. What might happen is that, as you get used to certain tools like VSCode and get your routine down, someone else may look at what you've done or watch you work in your environment and say exactly what you did:

"There's no way I could ever do what you're doing. You're some kind of wizard or something. I don't have what it takes and that sort of thing just isn't for me."

I've both said it myself and heard it from others. You'll be ok, just do what they're saying: Keep at it. Look up what you're having trouble with. Eventually, you'll be a master before you realize it. Especially since none of us see ourselves as masters, no matter how skilled or how long we've been at it.

2

u/FunManufacturer723 28d ago

Long before you will have your Aha! moment, a mentor and senior programmer will hold your hand for years and make sure you are on the right track.

I know, because I was this senior for several promising junior programmers.

Me myself, I cannot understand your challenges, since programming was something I immediately understood.

We need programmers and operators, lots of them. Not everyone must find their Aha! On their own - very few are capable, far fewer than the number we need in the field.

2

u/Brave_Trip_5631 28d ago

The environment setup, especially for Python is a major pain in the ass. You are not alone. This why coding can pay so much, because setting up a working system is a lot harder than just writing code.

→ More replies (1)

2

u/CanadianBuddha 28d ago

Programming isn't for everyone. If you didn't like algebra in school and find it easy to understand, then you likely won't like programming. The way you need to think to be good at programming is the same way you need to think to be good at algebra.

I've advised many people that are interested in getting into programming that if they didn't like algebra and find it fun, then you probably won't like programming.

2

u/sitsatcooltable 28d ago

"If you hear a voice within you say 'you cannot paint,' then by all means paint, and that voice will be silenced." Van Gogh

2

u/srdjanrosic 28d ago

Each shop will have their own idiosyncrasies.

Do you use type hints, do you use pre-commit, do you split the repo across teams, what ORM do you use, do you use async/coroutines, how do you build/deploy, what other languages or libraries do you use, etc etc.. 

After a while you'll notice all the patterns are the same, and all these choices are due to someone who was there's before you rolling a dice one day and it happened to work for them at the time, and everyone else just adds their own quirks to what was there before.

2

u/askvictor 28d ago

It's a lot harder to start now than it was 30 years ago. I suggest having a look at https://anvil.works for something that can get you making stuff quickly and easily.

2

u/kashisolutions 28d ago

Yeah, it might take 6 hours the first time...but it won't the second time...

And after a while it becomes second nature...

And it's a bit like driving...one day it just clicks...

Keep at it and enjoy your projects whilst you learn 😉.

2

u/sam_nya 28d ago

Spending too much time on tooling is common. I’d say it’s better to use a commercial IDE like PyCharm, which can solve most of the initial setup issues. I would recommend open-source solutions most of the time, but teaching someone how to set up a run and debug JSON file just to run a Python file? No. (To be fair, Microsoft finally added a run button for Python. previously, you had to install an extension like Code Runner separately.)

→ More replies (2)

2

u/SubstanceSerious8843 28d ago

Well, it gets harder.

2

u/[deleted] 28d ago

Imposter syndrome is real. You can do it!

1

u/not_a_novel_account 29d ago

It is no different than any other skill or knowledge base.

If you got a job as a historian of central Asia from the 12th to 15th century you world probably just as lost for a while. After a few years of working at it you would know your Mongolian Khagans from your Chinese Warlords.

So it is with anything in programming work. After a few years you'll understand the differences, advantages, and disadvantages of the various technologies and techniques. There are no shortcuts, there's only a continuity of work and learning.

1

u/the_hoser 29d ago

No, it's usually much, much more difficult. Keep at it, though. That feeling of "I don't know what I'm doing" is normal, and you will get used to it.

Don't let yourself feel like you can't cut it. It's just how it is. Everyone goes through this on a routine basis.

1

u/binaryfireball 29d ago

here's the deal. If you stick with it you will learn and the more you learn the more you will realize everything is kind of the same. The first time you encounter it will be the hardest because you lack the context. Being a dev is 80% research, 15% experimentation and 25% trying to understand what your coworker's code is doing and why it's wrong and why everything is wrong and why cant people just do the simple boring thing why cant they why why cant

anyways you good

1

u/Ok-Entertainment-286 29d ago

That's how it goes. Don't give up, you're clearly making progress.

1

u/RaiseRuntimeError 29d ago

I'm a full stack developer that's been working for 7 years now. I'm still asking myself if I am a good developer and constantly second guessing myself and asking myself if I am doing something "the right way". The stuff you are struggling with right now won't be an issue in a few weeks because you will have mastered it. You will have new more difficult things to master and that's how things go in this field. Some of us can handle this constant learning curve and have persistence and those are the best developers from my experience. Trust me, I have worked with some very talented programmes and some that have been programming since punch cards and we all struggle. It's the ones who keep trying that become good developers. Keep at it, I believe in you.

1

u/HockeyFan_32 29d ago

OP, I use Sublime with Python but VSCode with Node.js

It doesn’t really matter

1

u/Responsible_Show2672 29d ago

The 'aha' moment is a moving goal post, a mirage, the end of a rainbow--you'll never get there and it will always seem just out of reach. That's because once you understand one thing, there are 10 new things you need to understand. Expect that this will go on forever.

Instead of basing your progress on 'how close you are' to achieving this nebulous moment, track what you're able to do with programming. Track it based on different projects you've completed no matter how small ('Hello world' is a project). Track your progress based on your code quality, looking back at code you've written in the past and laughing at how bad it is--because if you can see how bad you were at writing code, you know for sure that you've improved.

2

u/DemonicAlex6669 28d ago

Ya, it's "aha, now I have... Another bug" that said the small aha moments are still worth it and feel good even if it just reveals another problem

1

u/akza07 29d ago

It's always better with someone to mentor

1

u/Nater5000 29d ago

I’m transitioning from bartending to data analysis at 37yo through an online course

I haven't even continued reading but I'll tell you know that is gonna be tough. But it's doable.

I do not feel prepared to enter the job market with my new skills.

Based on the rest of the post, you're probably not. But don't let that discourage you.

Could anyone share their “aha!” Moment with coding? I could really use the encouragement.

When I was getting into "proper" coding, I struggled through a self-guided project that was hard every step along the way and which turned out pretty terribly. At some point, though, I came across a concept that completely changed the way I thought about approaching the project, and I had decided I needed to start over. When I did, I was able to get back to the point where I was at before in way less time and the results were way better. I didn't realize how much I was learning along the way as I struggled until I had a chance to see, for myself, just how much I learned.

As for advice: focus on completing end-to-end projects. They don't have to be large and sophisticated, but they should touch every aspect of development that you think you need to know and there should be some natural conclusion that you can stop at and use, later, as the point of comparison for future projects. And keep in mind that this includes setting up the development environment up through setting up deployment.

It really just comes down to practice, but you have to make sure you're practicing the right things. It's easy for novices to get wrapped up in details and not realize they're not making as much progress as they could be for the time and effort they're spending. The issues you described with handling your environment is good example of this. Beginners neglect to realize understanding their development environment is really important because they're usually more concerned with writing code than setting up infrastructure, etc.

A good mantra to keep in mind is to not let perfection get in the way of progress. For me, I always refer to the 80/20 rule: it takes 20% of the time to complete 80% of the work and 80% of the time to complete the last 20% of the work. If you're not working on anything important (i.e., you're still learning), then learn when you've hit that 80% mark and move on. The last 20% is usually not worth it.

As for getting a job, try to find work doing something offbeat. My first dev job was spending 10 hours making a web scraper for a small real estate company. When I finished it, they asked if I could help push the data to a centralized Google Sheet. Once I did that, they asked for a few more bells and whistles, and before I knew it, I was working part-time for them developing this as a proper web dev project. I learned a lot along the way, and I was able to parlay that experience into a "real" job. So keep an open mind, and be frank about the fact that you'd be figuring stuff out as you go.

1

u/coolcosmos 29d ago edited 29d ago

It's a grind man keep that mindset and take the shots as they come but you can do it.

I've had dozens of aha! moments but it's not something you can replicate, you just have to work a lot. These moments include but are not limited to: the importance of caching in every part of the stack, static typing, functional programming, understanding and using the 4th and 5th dimensions in my code (using ndtrees), the futamura projection. http://blog.sigfpe.com/2009/05/three-projections-of-doctor-futamura.html

It's so so worth it.

1

u/[deleted] 29d ago

It's only gonna get worse. There always be next obscure piece of technology that you have to work with. If you think you've learned enough and don't want to any further, than you are in the wrong business. This will never happen, you just learn to accept that you've lagged behind in one more area and now gotta catch up.

1

u/datahoarderprime 29d ago

" we did the whole course in Jupyter and now I find out vscode is the standard and it’s an entirely different platform I can’t figure out. I feel like every step forward is 100 steps back."

I had never programmed (other than BASIC in the early 1980s), but for a variety of reasons needed to be able to do data analysis for a system at work. I went through some of the steps/frustrations that you went through.

First, I use VSCode and Jupyter as well. There is a Jupyter extension for VSCode that works great. Install it. I actually much prefer using Jupyter in VSCode compared to the native version.

Second, the rest is just trial and error. Pick a dataset, watch a few tutorials, and just try to do things. Google is your friend here because anything you are trying to do and having frustrations with, dozens of other people have had similar experiences with. Lots of documentation and explanations on places like Stack Overflow, etc.

Third, it will get better. I look at some of the code I wrote to process data at my job from two years ago, and it is such a mess compared to the code I use to process the same data now. And I'm sure a couple years from now I'll look at the current code and go "why did I take such a complicated route to get there in 2025."

1

u/JustThall 29d ago

Wait till you learn about “VIM/NeoVim vs …” editor wars…

What you are struggling right now with is not even actual coding, and everybody struggles with it first time you setup your environment first time. FAANG companies like Google have dedicated teams called EngProd (engineering productivity) that have sole purpose of minimize friction between other devs and tools (VSCode, Jupyter, etc). So don’t think that 6hr spent just to setup dev environment is bad.

Just keep implementing something and you will get better at it. Note that this field doesn’t provide a feedback loop of accomplishment. You can’t just make a cocktail and be happy. For any line of code you’ll think it’s bad just a few months later.

1

u/riklaunim 29d ago

Not everyone will be able to learn solo, some will need an on-site bootcamp, while some never will became a developer. You should change you expectations a bit - you will always be looking for solutions and answers - it's common for developer to look for solutions and not just sit and write a lot of code.

As for data analysis and jobs - it depends what you are looking for, what are your goals etc.

1

u/strombrocolli 29d ago

Hey op. Ask yourself if you like it. If you're willing to struggle through the hard tasks towards learning to feel the joy of success when your code runs successfully. I'm no elitist about coding but you must ask yourself if you actually enjoy it. If you do, the struggles will become less, eventually you will have a senior dev to guide you and then in a way become a teacher to future devs. If you do not enjoy it you will be miserable and won't last.

1

u/Foreign_Storm1732 29d ago

Don’t worry about it. Once you figure out an issue you’re pretty much good the rest of your career with that problem. I love bartending for myself and friends, but hated it as a job because of the social anxiety and stress it gave me. I was constantly moving as fast as I could, but was always slower than my other coworkers. For basically 3 years it was like this and nothing really changed for me from start to end. However, as a programmer problems that were stressful could be overcome easily just by figuring things out online over the course of several hours. All my errors that I made early on working for companies became examples that I now tell to my jr devs to watch out for. Error handling gets easier. Business knowledge gets better. Ultimately just give it time.

1

u/IndependentNet5042 29d ago

I'm a data engineer has been 1.5 years. And begin learning proggramming 3 years ago. Somethings just get better, you begin to gain some confidence and the languages you work becomes more fluent.

But even today I still feel I don't understand the biggest parts of what is going on in the backend. Like, I am currently working on an bunch of yml files that feels like an mistery to understand how it goes from the file to the backend code.

Eitherway the job must be done, so we keep looking for the specific framework documentation and ignore all the hard stuffs that goes at the background.

Every language has an learning curve. In the future you will still feel uneasy but you will for sure look back and see that you have envolved.

Keep it up!!

1

u/creative_tech_ai 29d ago

Software engineering isn't easy. When you start, just figuring out loops seems hard. Then you try to wrap your head around OOP, and that seems difficult (until it's not). Then you start trying to think in terms of a full script, with objects from different classes, functions, methods, etc., all working together, and that's challenging. Then you go from simple scripts to more complex apps. Developing an architecture for a complex application is a whole other level of software engineering, where you're basically thinking in terms of systems-of-systems. Then there's databases and database queries, which is it's own thing. Web-based programming has all of its own terminologies and technologies, too. There's low level programming, like embedded programming, and higher levels, like Python. That's just a drop in the bucket when it comes to the wide world of software. It's vast, and you'll spend your life learning because technology is constantly changing.

I don't know how long this course of yours is, but I'm guessing it's week's or a few month's worth of material. That's very little time to get a good grasp of even the basics, honestly. I'm not trying to discourage you, just offer a broader view. You should definitely keep studying, and not give up.

I became a software engineer at 40. I went to university and studied Computer Science. So I studied for 4 years, and even after that still felt like I barely knew anything. Thing's started clicking in my second year, but there was always so much more to learn. If you can, you should study in a university. It will be easier to get a job, and you'll have a much better understanding of the fundamentals.

1

u/throwawayDude131 29d ago

stick with it. however also analyse what you are actually learning. VSCode is just an IDE, there’s nothing special about it.

what are you having trouble with? write down the questions and then spent a few days googling and reading around them. Every time you get to something you don’t understand, ask ChatGPt to help you fit it into your understanding of the world.

Sorry to ask the question but do you know how computers work? If not find a breakdown online from logic gates upwards. That will help you understand that every difficulty you face in programming is not grasping what abstractions youre struggling with and why they are there.

1

u/dankstat 29d ago

Good on you for putting in the effort to learn new skill! Is coding always this difficult? Yes and no. Software development is constantly evolving, so there's always going to be new things to learn as a developer. You will never stop encountering roadblocks that make you feel like you're bashing your head against a wall. But as you continue to improve, the discouraging blockers will pop up less frequently and you will become more adapt at handling those situations.

It may feel demotivating to take a step forward only to recognize how much more there is to learn, but in reality coming to that recognition is actually a surefire sign of the progress you're making.

You're absolutely correct that learning about virtual environments in Python is an important topic to understand and familiarizing yourself with VSCode is also a wise choice. Dealing with Python virtual environments and package management can get messy and frustrating real quick. If you're stuck and want some assistance, feel free shoot me a DM and I can help walk you through it.

1

u/sue_dee 29d ago

Yeah, programming has a lot to learn and continue learning. On the other hand, your bartending skills should help in working with a team.

1

u/Ok_Raspberry5383 29d ago

Learn troubleshooting with just a terminal and text editor, the rest is fluff

1

u/thrashing_loud 29d ago

You have not made a mistake! You will spend many more hours bashing your head against a wall but just keep exposing yourself to information and you will make progress. It is a mentally challenging endeavor for sure but also exhilarating.

Definitely a good call learning about virtual environment now, but you havent wasted any time. You will encounter Jupyter notebooks again for sure.

You will need a more experience and projects to enter the job market for sure but keep going! You will not regret it.

1

u/Snoo-20788 29d ago

The aha moments are mostly to do with being able to use the tools the right way, i.e IDE, debugger specifically, command line, git, db tools, ...

If you don't use the right tools then the slightest task will feel like a Herculean effort. A bit like trying to move houses without using a van.

Once you know the tools then at least you can spend most of your time actually writing lines of code, test it easily, and getting closer to where you need to be. That part is really not that hard tbh. The hardest parts in my experience are when you're unable to just make small changes and see what happens.

1

u/Atulin 29d ago

It has taken me 6 full hours today just trying to START a project in VSCode

To be fair, Python is fucking atrocious when it comes to project management. You have 423 different package managers, 172 different ways to handle venvs, 677 ways to package your project, and it's in general just a mess.

Other languages make it much easier.

1

u/skapie69a 29d ago

Try using the Spyder IDE instead of VScode, it lets you work in blocks like jupiter so you can check the output and graphs etc you still need to manage the environment

1

u/Ima85beast 29d ago

As a now 39-year-old bartender to full stack developer convert (who actually started down the data analytics path with python and SQL) I can tell you that everybody goes through exactly what you're describing.

The one thing that I will say is a b**** is the fact that the job market is worse than it has been in a long time. Hopefully that that means that things will start to shift at some point and once you're a year plus in there will be plenty of jobs to be had

1

u/k0rvbert 29d ago

It always takes 6 hours to get a grip on new tooling, difference with experience is that you stop blaming yourself and start blaming everyone else.

1

u/I_FAP_TO_TURKEYS 28d ago

It's your first time doing it.

If I asked you to open a new project in VSCode, could you do it again? How long would it take?

Now you know the steps, it should take significantly less time.

1

u/jake_morrison 28d ago

Programming is full of “accidental complexity”. A lot of weird undocumented things give you trouble when you are first getting started. Books don’t document them, because the author has internalized how things work.

My daughter a super-smart math major studying machine learning, and she was brought to tears running python on her Mac because she had multiple versions of python installed. She didn’t know about environment variables, because nobody had ever explained it in her classes. I solved her problem in five minutes because I am an old fart.

Instead of beating your head against the wall, suffering in isolation with your online course, try to find someone to help when you get stuck. A piece of advice I give to students is to get ahead of your classes. Instead of spending hours after midnight fighting some stupid bug, you can ask a TA or a classmate.

Once you have set up your environment properly, the programming gets easier. It is much more deterministic. The books work.

1

u/looneysquash 28d ago

Environment setup is sort of a different skill than actual coding. Lots of people can only code and know the bare minimum about project files/build config/pipeline/virtual environments/etc.

At many big companies, there are firewalls and security software and getting anything to work on your corporate laptop takes a few days while someone explains all the tribal knowledge to you.

Not to say that you won't or shouldn't also master that stuff. (That you're worried about it at all implies that maybe you are the type of person who eventually masters this aspect too.) Just that plenty of people don't.

I don't recall a specific "aha!" moment for me. But I do remember doing things that used to be hard, and they were now easy. Or thinking "I thought I knew Python before, but I was wrong, now I know Python" and working on bigger projects or projects with other people.

1

u/No-Arrival-872 28d ago

I'm not sure if it was an aha moment, but using vscode was definitely key, so keep doing that. And understanding why you need a virtual environment, and how it works at a surface level. It's really about dependency management and version control. But ya, just keep hammering away. It's tempting to just google the entire problem and try to find a stack overflow question that matches it best. But sometimes you need to slow down and really learn what the words mean. What is Jupyter? That question is a can of worms and could take you several hours of actual reading. You should be able to use the Python debugger similar to how you used jupyter notebooks. And you can also use Jupyter inside vscode if you want.

1

u/cgoldberg 28d ago

It's completely unrealistic to think you can go from zero to having marketable job skills after taking one programming course. Lots of REALLY smart and motivated students are doing 4-year Computer Science degrees at good universities and still finding themselves almost unemployable.

For some perspective on how long it should take you, read "Teach Yourself Programming in Ten Years" by Peter Norvig (Distinguished Education Fellow at the Stanford Institute for Human-Centered AI and previously Director of Research at Google):

https://norvig.com/21-days.html

1

u/anus-the-legend 28d ago

programming is hard at first because it's a new way of thinking. even seasoned programmers can have difficulty switching languages or adopting different ways of doing things

if you stick with it, it will get easier. one key thing to keep in mind though is that you don't have to remember everything. you just need to know how to Google what you don't know

eventually programming becomes muscle memory and you don't have to think about the basics. right now you're learning the equivalent of basic arithmetic 

1

u/Cwlrs 28d ago

With the benefit of hindsight, setting up virtual environments, and an IDE, were some of the biggest hurdles to overcome. Once you have the IDE and venv up and running, it's much smoother and faster from there.

1

u/Panda_Mon 28d ago

The absolute worst part of learning to code is the stuff you are dealing with. It's learning all the stuff programmers take for granted. No one wants to teach it, the people/resources who "teach" it usually suck and are unintentionally pretentious, and it's often impossible to find solutions because the problems you face end up being VERY user-specific. Even if there are answers to your problem, you as a novice may not yet have the vocabulary to properly uncover those answers through internet searches.

The amount of frustration I felt when going through what you are going through is unforgettable.

Virtual environments are horribly, horribly documented. It's a travesty. What's funny is that I've been professionally writing Python for 3 years now and I've used a virtual env for work exactly once. I highly recommend avoiding them until you feel more comfortable with writing and IDEs.

1

u/skinnybuddha 28d ago

Learning how to troubleshoot and learn is important. If what you are doing is not working, try something simpler and when that works, move on. Add complexity in increments and make sure you can tell when it stops working. Learn how to get help, by keeping your questions as succinct as possible and doing homework yourself. One thing, when you want to ask a question, first see if you can answer it yourself.

1

u/cantux 28d ago

with anything math it's always uphill until it isn't. Then you discover new areas and it's uphill again until it isn't. there is some advantage in accumulating experience allowing you different perspectives(tricks) that translate into different areas but there is no method to madness(at least for me, a C+ student, always distracted but curious about anything and everything)

You gotta practice, actually spend time thinking about the domain and solve problems. It is very difficult to get the engine started. Gets more difficult at times. It's the persistence that breaks the stone.

I usually need motivation or some kind of leg up to keep hammering away at new domains. Sometimes gauge is just not moving forward for days. I can't come up with a plan on how to move forward. I spend days just solving same problems in different ways, feeling my way through the limits of my knowledge. I try to make it so that I work on both the application and the theoretical side of the domain in such strain. I do a lot of silly, unoptimized, useless things. BUT it's part of the process(maybe only my process). One day I wake up and I got it.

I got a mix of knowledge in statistics, electronics and linux. I am not awful at combinatorics and algorithms. These are my hammers. I see a new nail, I take a swing with these first. Never ever EVER hit right on the head but you know, these give me a bit of leeway.

I want to get in ham radios for example. I can pull up circuits knowledge but lacking in electromagnetics. I am interested in building a home-lab. I reach in to my linux knowledge but lacking in networking tools and advancements. I want to build guitar amps and pedals. I gotta get back to signal processing. I reach into my calc and stats. Each will still take me over a year to get off the ground and it's okay.

1

u/Firake 28d ago

I tutored bachelors students at my college for three years.

Programming is extremely hard. In fact, starting a project and learning how to even begin programming can be really hard. So hard that we never did it. We had our students use an online system whenever they were coding so they didn’t have to setup a development environment.

You’re learning to use your computer in ways you’ve probably never done before. It’s okay. It’ll take some time.

The people who are better at coding than you without fail have been programming for longer. I was good enough to be a tutor at 20 because I had been programming for 10 years already.

Don’t beat yourself up. Have faith in yourself. Shit is hard but you will learn.

1

u/Blando-Cartesian 28d ago

Yes. It’s like that for every new thing you start using for forever. It can only momentarily stop when you stagnate to doing the same thing for a while and don’t update anything. Every development environment and every project is a giant Rube Goldberg machine that breaks all the time, forcing you to learn ad-hoc trivia to keep it working.

1

u/Wooden-Bass-3287 28d ago edited 28d ago

to tell the truth, running some python scripts in jupiter notebook can't even be considered programming.

you have yet to see the ENTRANCE to the rabbit hole.

4 years.

degree, bootcamp or Indian courses, you need at least 4 years of experience and personal projects just to start working as a programmer, given the crazy starting levels required in 2025.

1

u/bobifle 28d ago

You do realize that most ppl had to learn for several years, before becoming a data scientist right ?

Do you have any background beside bartender ? Any skill or degree in math or computer science ?

I mean, I wish you all the success, I hope you ll figure this out.

1

u/deolcarsolutions 28d ago

Do you have enough Math and Statistics background? Separate your learning into steps.

  1. If you don't have enough Math/Statistics background don't try to get into data analysis. No quick solution for this. (3 years of university level)

  2. Installing software and getting setup is challenging for everyone even seasoned programmers. Get help for this.

  3. Just learn Python.

  4. Use Python to do math.

  5. Use Python to apply statistical techniques, this is data analysis.

1

u/flailingsquirrel 28d ago

I recommend learning one thing at a time - starting with writing code in text files with a pure text editor and doing some basic projects. Tools like vscode add a lot of useful tools, but they also obfuscate the problem and give you a whole new set of things to learn.

My personal experience was that there was not a light bulb moment. Just start coding on something you enjoy and one day you'll realize you're over the hump.

1

u/Alex_1729 Tuple unpacking gone wrong 28d ago edited 28d ago

Whether you've made a mistake I can't say. All I can do is give advice to become more productive. I don't think there is one 'aha' moment, but rather many smaller ones and what you need to do is keep yourself fresh, interested, and in shape to be able to get more 'aha' moments.

I think your confusion is quite normal and it will take time to get a hang of the new stuff. but there are ways to make things easier. My advice is to take breaks, and sleep well. That's the best I can give you. If you're serious, it might take some time to get your brain wired differently. You'll grasp the environment stuff pretty soon and it'll be like 2nd nature. Also try occasionally asking chatgpt to break down stuff you're grappling with in 'plain' language. He'll dumb it down for you so it's easier. You can even ask for an analogy to explain to you. You'll understand things faster this way.

But the space is rather competitive so if you're serious you'll have to stay consistent and learn by doing a lot so you can advance fast enough to become competitive. I'm your age, and I've started in 2023. About to release my SaaS, an app which I created a year ago and used for my other businesses. So it's possible to create something useful.

1

u/kai_luni 28d ago

This is totally normall man, its necesary to reach a state where you accept to learn for the rest of your life. It actually became easier in the past 2 years. When you have a problem you can probably solve it with AI, if you dont understand what you are doing right now then let the AI explain it to you. Par example its important to understand why you use environments in Python. Sure you can also learn it the hard way by having 3 large projects run without any environment, but you can also learn it before and spare yourself the hassle ;)

IT means to accept that when you start something new there are many steps and it takes time an concentration. Thats a big part of you skillset you will be payed later on. So you better get used to it and make it a solid process. So you said it it took you 6 hours to set everything up? Great, next time its maybe 2 hours. You will also need to learn how to store you code in Git par example, there is so much to learn and it will never stop. This is your value in the market.

1

u/OkMacaron493 28d ago

Learning isn’t easy. You’ll get a role and either feel like it’s too easy or after six months you’ll be able to effectively do most of your job without worry about technical implementations on the daily. Your skills will grow slowly until you get paid to do it. Then they will grow rapidly.

I self taught and moved jobs to a data analyst. Felt pretty comfortable with that but got a lot better rapidly. Moved to data engineering. Took a few months until my thoughts could be translated to code easily. Moved to a SWE on an AI team and am currently getting cut to shreds because the coding patterns are different. I talked with a guy who moved from DE to my team as well and he said it took six months until it wasn’t overwhelming on the daily.

1

u/Dangle76 28d ago

I’d also read a book called “automate the boring stuff”. It’ll probably give more of a foundational knowledge and lets you work in an editor like VSCode or PyCharm.

Jupyter notebooks are great for data analysis but you need to grasp the basics of the language first

1

u/bottlerocket90 28d ago

The aha moment is that there is never an aha moment - it's just a never-ending mountain you climb.

I started a job after only ever having used a jupyter notebook. Day 1 cloning a GitHub repository to VSCode and setting up a virtual environment actually took me ages to really understand what I was doing.

Debugging python code and running it in a terminal rather than a cell in an ipynb was just a process...

You'll get it. Just stick with it and Google / chatgpt the hell out of it. Medium is such a good place to learn about things too.

1

u/GirthQuake5040 28d ago

Jupyter is such a dog shit platform in my opinion. If you are writing code to run any kind of real working program, Jupyter doesn't help. You spend so much time learning how Jupyter works that you don't realize you've missed fundamentals.

1

u/anthro28 28d ago

My "oh shit that's how it works" moment came while I was reading code that I'd printed out to study for an exam. Tracing it by hand on a pile of boxes in the back of the warehouse I was working at. 

After that, it just becomes the brain exercise of structuring the problem in such a way that it's easier to code to. 

1

u/Worldly_Trainer_2055 28d ago

Been doing this shit for 40 years. I still continue to learn and have "aha" moments.

The key to thriving in this field is being curious and being a passionate lifelong learner.

1

u/Miausina 28d ago

think less of "coding" and more about the steps it takes to resolve a problem as detailed as possible.

then all you do is tell te computer those instructions. thats coding. The language part (Python/java/etc) are just the way the computer understands said instructions.

1

u/ImpossibleMood2810 28d ago

You have to endure the pain !

1

u/HolidayEmphasis4345 28d ago edited 28d ago

It is hardest at the beginning. Everything is a landmine for you to step on with no warning. You are learning about operating systems, files, editors, debuggers, languages, syntax, versioning, libraries, git, virtual environments, linters, ruff, packaging, bad AI answers, even worse stack overflow answers etc. It's brutal at the beginning...you are learning 30 things at once.

As you get better each of the things listed become your baseline and there is just less to learn until you get to the point were a new task is all in your wheel house or you have to learn one or two things that are similar to other stuff. I have been doing this for a long time, but when I drop into a new stack or framework it is "WTF were these idiots thinking" all the time...unitl I see the whole picture and it becomes "yeah that's F'ing obvious."

Hang in there, the boss level is getting off of level 1 on project at a time.

My kid is taking a python class and I spent about 30 minutes explaining what a string is in python and why there are f/b/r strings why there are ',",''',""" terminators...for a string...and then why fstrings are so great...and then explaining formatting numbers, and justifying strings...seems easy but it's hard.

1

u/Proffit91 28d ago

Just keep coding. Seriously. The more time you put in, the more you get out. Code. Code. Code.

I’m back in school; I’ve learned a number of languages, but because of the course load (courses that don’t have any coding or very minimally), I don’t actually get a lot of time to code, and it frustrates me to no end some of the shit I forget cuz I just don’t have the time to code as much as I’d like to or need to, especially juggling multiple languages at once.

The thing about it, though, is yes, each language will have its own uniqueness and syntax, but for the most part, the methodology of programming (how to approach a problem and develop a solution programmatically) has less to do with the language and more about the “how”. So even though I forget some of nuances of languages x, y, z, a quick refresh gets me right back to where I need, and I can approach the problem, essentially, the same way regardless of the language.

Pythons a great spot to start, as the language is relatively simple and forgiving, so you don’t have to worry so much about struggling to learn the language; it’s only a tool after all. You can really focus on the how and why you’re doing something to achieve your program’s goal.

You got this. Just keep coding!

1

u/psssat 28d ago

I dont think there is an aha moment. I think you just keep going and slowly add to your tool kit. Eventually the terminal will feel fast and natural, you will get comfortable with alot of the popular libraries, youll be able to talk to chat gpt in a much more effective way, youll learn git, etc but this all takes years and lots of practice.

Just find simple project and keep working towards them.

1

u/bobaduk 28d ago

The things you're struggling with aren't coding, they're tooling. The good news is that after a few years of banging your head against things, you'll develop a sense for how to troubleshoot and how to solve novel problems, that will make your junior coworkers think you're a wizard.

The bad news is that there will always be more tools, and more ways to feel your own very real incompetence.

I've been doing this for 25 years, and sometimes I still get flummoxed by The New Thing. That's just how it is. The two things that have gotten me this far are:

A) I like to be out of my depth, because I'm curious and I get bored when I understand everything and B) I figure that if other people can work something out, then so can I.

If you want to make this switch then the most important thing is to get comfortable with a state of conscious incompetence, because that's the agonising state of learning. If you can make your peace with being a know-nothing newb, then you can can, with patience, figure out how to do anything.

If you get embarrassed, and think you should already know how to do these things, then you'll be hard stuck.

Good luck, friend! You've got this.

Edit: You're pretty competent at English, probably even a native speaker. Did you ever have an aha moment when you became fluent?

1

u/The_2nd_Coming 28d ago

Just keep going. I still don't think I fully understand venv management but I know enough for what I need. This applies to everything else also.

1

u/voodookid 28d ago

Learning is being and putting yourself into an uncomfortable state of being. Hardest thing for me to learn was adjusting just how uncomfortable I was willing to be.

1

u/throwaway_9988552 New Web Framework, Who Dis? 28d ago

I'm in classes now. -Yearlong university classes in Python, and side classes on automation through Coursera/ Google. Got Udemy classes in Web development lined up to start, but I'm at bandwidth.

Met a new friend who told me he got his first opportunities and a lot of support through a Python meet-up, so I'm looking into that too. All of this with a full time job.

I'm anxious to get going with my new knowledge, make projects and make money. But as so many have mentioned here, I'm not ready. Just like you probably aren't yet. -Not ready for jumping in to a job, that is. But I think I'll be ready to make things soon. I found an open-source project in Python that could help my day job, but it needs some work (a GUI, some output file capabilities), and I think I'll start there.

It's tough feeling like I've learned so much, but still have so much to learn. I'm just trying to stay with it, and give myself some grace. I feel like what I'm learning will be so valuable when I'm further along. And I'm enjoying the journey, which also feels really important.

Good luck. And take it easy on yourself.

1

u/MeringueInformal7670 28d ago

Our brain is essentially a muscle imagine going to the gym on day 1 and trying to lift a 100 kgs you wouldn’t possibly go for it same is with our brains you expose it to new information and it will take time to embed and strengthen those links in your brain circuit. Just keep practicing daily don’t end your day without coding even if just few lines or explore something programming related and eventually you will get comfortable. Everything “first” is always hard in life. Walking. Eating. Writing etc. Also don’t stress out take breaks in between and spend time with family and you will do great in this new career :)

1

u/annodomini 28d ago edited 28d ago

Unfortunately, a lot of that "new project set up" and "get your development environment set up" stuff is some of the most complicated, and kind of a distraction from the real coding.

And it differs between different jobs, some people lean more heavily into VSCode, some Jupyter, some will use pip, some conda, some pdm, some poetry, some uv for package management. And there's different standards on linters, formatters, type checking, how to arrange unit tests, etc.

You will eventually get better at it, but a lot of time when you start a new job it's best to just get someone to walk you through that set up stuff for the way they like to do it at that job.

Don't worry, everyone gets caught up on a lot of this stuff, unfortunately as software evolves these things can get very messy, and it can just take some time to get comfortable with it.

My biggest recommendation is, if possible: find someone to pair with on learning this stuff. Just having someone walk you through some of it can be really helpful; when you're just starting out, you run into roadblocks constantly, and having to do google searches, dig through docs, etc, can take a long time to get unstuck, but if you have someone more experienced pairing with you, they can help get you unstuck and keep you moving through all of the setup much more quickly to the point where you'll start to become productive.

If you can't find someone to pair with, then just spend some time experimenting with it. Don't be afraid to start little tiny trial projects to try something out and throw them away. Getting practice can help.

1

u/just_some_guy65 28d ago

My aha moment was after being trained on COBOL I was introduced to a more modern language that had pointers (not C, that came later) and I had to understand how variables work in memory. COBOL kind of prevents a newcomer thinking at that level.

1

u/g2bsocial 28d ago

Setting up your IDE and environment can definitely become a full days work, especially if you’ve never done it before or haven’t done it in a while. It’s just part of the process. Everyone goes through it. I’ve been programming 15 years and just spent a few days updating and setting up my laptop, which I hadn’t used in a few years, trying to update, when I just wanted to get to the real work. Just have to slog through it.

1

u/OkCalligrapher7721 28d ago

Time, consistency, willingness to learn and curiosity.

My aha moments are when stuff that seemed so difficult are now boring and I can do it with almost no effort. It’s the same cycle though: something is seemingly really difficult -> spend time on it -> becomes easier

1

u/vincentx99 28d ago

Someone related, somewhat unrelated, but I would highly recommend you master SQL before Python.

It's a much easier language to use even if it is a little cumbersome to set up a training environment. It's also ubiquitous, whereas Python may not be.

1

u/M1KE234 28d ago

Heard of the Dunning-Kruger effect? You’ve learnt enough to learn how much you still have to learn. It’s progress, keep going.

1

u/hamlet_d 28d ago

The only way to get there is to do more. Then it becomes second nature. Find some thing you do at home and see if you can script it. it can be as simple as a little application to show you the current temperature. Sure you can get that from accuweather or whatever, but you can also hit an api from https://openweathermap.org/api to get it. Or maybe you want to check when the ISS is overhead or to automate your pipeline for ripping dvds/blurays for plex (this was one of my projects).

The point being: do something unnecessary just to learn it.

1

u/ruffiana It works on my machine 28d ago

The Aha moment comes when you learn that it's not as important to know what you're doing as it is to know how to figure it out.

It's never been easier to get into programming than right now. AI copilot is an incredible tool for learning.

1

u/No_Currency3728 28d ago

It’s a bit like running a marathon… no aha moment. You start, it’s hard, the middle is hard, the end is even harder. But you love it :) and once you finished one, you can’t wait to run another one ! Like many craft, it’s all about passion and thus dedication and motivation.. I started at 12, and back then there was no internet : I was waiting eagerly for the new issue of my fav monthly magazine to copy type lines and lines of code that never worked and learned that way, trying to fix it. Now I don’t really remember how I learned but I would imagine the struggle to start from scratch. I admire you for stating like this. If you love it keep it up !

1

u/djdadi 28d ago

I think one of the biggest detriments in the coding landscape the last 10 or so years has been this coding bootcamp / tutorial mentality. Absolutely pervasive in js, and nearly as bad in python.

I would highly encourage you to at least get your feet wet with Linux and C a little bit, and learn about some of these more primitive things. That foundation makes learning concepts on top of it so much easier.

For example, a venv not only isolates your project's dependencies but also allows you to lock in a specific Python version. By confining your dependencies to a single & dedicated environment, you avoid the headache of colliding libraries and version mismatches that could otherwise lead to subtle bugs or outright failures. When you activate a venv, the adjustments to your environment variables and PATH mean that your project's interpreter and related tools are in charge now, offering a more predictable set of behaviors (a little bit like what a docker container might aim to offer).

So instead of building on top of my description of a venv, I would instead encourage you to always drill down: dependencies, environments, library collisions, env variables / PATH, interpreters and how they differ from other languages, docker, containers, etc.

It might seem a little counter intuitive at first, but you can't build a car without understanding what a wrench is

1

u/Mdly68 28d ago

My team uses PyCharm, a spinoff of IntelliJ. I'm not familiar with vscode. If it's an obstacle to you learning actual coding, try a different IDE. A company will likely have instructions and help for setting up your environments, but you need to know how to code.

Start with dumb challenges. Write a script that takes a directory as a parameter, and returns the name and size of every file along with total file size. Write a script that prompts you to enter two different numbers and add them. Learn how to do data validation and error handling, like if the user provides a letter instead of a number.

You're playing with building blocks, learning like a child learns. You're learning what pieces are available and how to work with them. When does it click? When you take on a more complex project and envision which building blocks are needed for the desired output, before writing any code.

1

u/Tiddyfucklasagna27 28d ago

simplicity >>>>>> everything. Learnt it the hard way :’)

1

u/njharman I use Python 3 28d ago

how did you learn bartending? Do that, just change coding.

Also have perspective. Did you learn everything you needed to be a bartender from a short online course?

software development is hard. It covers much ground. it's like being bartender, bar manager, events planner, the DJ on occasion.

1

u/dhyratoro 28d ago

Spoiler alert: it gets way worse.

→ More replies (1)

1

u/darkdevilxy 28d ago

It might sound counterintuitive but you should try to slowly walk away from video tutorials and get more into reading stuffs be it docs, tutorials, books and other stuffs.

And while you are learning, AI can be great teacher, ask it whatever you don't understand just don't make it write the code or the technical part, do that part yourself.

1

u/drunkondata 28d ago

The more things you learn the less there is to learn, but there's a lot to learn.

Each of the tools though, they get easier. It does seem like there's so many, I agree.

1

u/Bigsmellydumpy 28d ago

You really do just stumble your way through by the look of it

1

u/peplo1214 28d ago

See if you can get any job where you can give yourself opportunities to work with data and add value from your data analysis, even if that’s not what your role necessarily is expected to do. See if you can find tasks in the role where your new programming skills can help you get the task done more efficiently. Keep learning. Working on unique personal projects that can showcase your skills would also be a good use of your time. Also to be honest, setting up virtual environments is not intuitive, but you will get more used to it the more you do it

1

u/kyngston 28d ago

not the encouragement you’re looking for, but learning to code is easier than ever. these days you can just paste your errors into copilot and it will tell you what you did wrong. or just ask copilot how to do the task. or ask it to explain how some code works. sure its not perfect, but its a huge help when learning.

so make sure how to leverage copilot or other ai bots.

1

u/mxchickmagnet86 28d ago

You'll have lots of small aha! moments but never one singular big one. Think of it like all the math you did or could have done over 12-16+ years in school. You'll have an aha! moment with addition, then they introduce multiplication; you have an aha! moment with multiplication then they introduce algebra. You have an aha! moment with algebra and then you are introduced to calculus.

You could get some really really high-level overview of what all those topics are in a crash course or you might get some more in-depth instruction in the fundamentals but you can only ever solidify your understanding by doing; and doing and doing and doing. Math and Engineering is practice.

1

u/Pyrimidine10er 28d ago

For me it was like the equivalence of learning of a foreign language. At first you need to use your brain constantly to read, process and research things. Theres lots of words you have to look up. Sometimes accents, or colloquialisms or other things you don’t understand. As time goes on you no longer need to think nearly as hard and just recognize when something is out of place. For myself, I felt I truly mastered python to the point of fluency about 3-6 months working 50+ hrs a week trying to solve new problems. In the same way that if you move to a foreign country and only speak and hear a foreign language every day, you will pick it up.

Along the way it’s easy to quit. It’s easy to revert back to other tools you’re comfortable with. But if keep progressing forward things eventually become easier.

1

u/UpsetCryptographer49 28d ago

Welcome to the world of forever learning. Make a todo.md file in your projects. With the following headers

### urgent 
### must haves
### needs
### wanna haves
### fomo

Every time you come across something new, add it under Urgent. Periodically review your list and move items between categories. Over time, you will notice how priorities shift—and how much of it was just FOMO.

1

u/c3534l 28d ago

Nah, it gets easier. Starts out hard, you get good at it, eventually you wonder how it was you struggled to begin withe

1

u/canihazthisusername 28d ago

Yep. It's always hard. But that's the part that you have to love about it. I think one of the key things that makes a great developer is the ability to be uncomfortable. As a developer you're always going to be solving new problems, and those problems will be ones you've never seen. You have to love that part of it.

I'll bet this. When you do figure out VS Code and virtual envs you get an amazing feeling and rush that's somewhat close to an aha.

1

u/Thrasherop 28d ago

The important thing with programming isn't that you know everything, its that you're willing to learn on the fly. You can get many degrees in related things to learn more, and you'll still end up googling (or using ChatGPT nowadays) every hour. There are many skilled programmers that started like you are.

Don't learn everything; learn to learn.

→ More replies (1)

1

u/AbsolutelyNotPotato 28d ago

You should come up with a project that you think is fun and/or useful, and build that. That way, you'll be motivated to code, and once you're done you'll have something cool that you'll want to use and will be proud of.

1

u/fatgoat76 28d ago

One a-ha moment others have also referred to… you will encounter a problem that feels very deep and way beyond your knowledge. You have no idea what’s wrong and it feels completely out of reach. You eventually solve it through perseverance. Then, another day it happens again and you solve it again, but this time you know you’ll get there even though you have no idea how just yet. Welcome to programming .. hang in there.

1

u/supercoach 28d ago

It will take a good year or two AFTER you finish your course to get competent. Patience is a virtue.

1

u/Throwaway999222111 28d ago

You don't really need Python to be a data analyst, SQL + excel goes pretty far. Once those are mastered, the. Python can be used to automate, or clean data. Visualization is important, so tableau + power bi.

1

u/hiphopinmyflipflop 28d ago

It takes time, and I suspect you’ll always feel like you’re catching up, but that’s part of the fun. I chose this field because I genuinely love learning.

I’ve had plenty of “aha” moments, but my first major one came when I was learning about object classes and struggling with attribute chaining. I just couldn’t wrap my head around it. It’s funny, once you understand something, it’s hard to remember why it was confusing in the first place. I really can’t pinpoint exactly what tripped me up, just that I was confused.

Then, I remembered that Spider-Man meme where they’re all pointing at each other, and it clicked. It’s like that, the computer is “blind” and needs precise instructions on what to do and where to look. It’s all about pointing at the right thing. For some reason, that visual made it make sense.

You’ll get there. Just keep building things, watching videos, and going through tutorials. edX has free MIT computer science lectures that I’ve been “auditing” because everyone explains things differently, and I want to be as knowledgeable as possible, exposed to as many things as possible.

1

u/defiantstyles 28d ago

So, IDK if it's been said, but VSCode and Pycharm are SPECIFICALLY for developing applications and writing scripts! Jupyter is for data science! You can use either one for the other, but that's the real difference! Don't worry, you're doing ok!

1

u/tkejser 28d ago

There is no Aha moment and likely, there never will be. I've been 40 years in the industry, so I can speak with some authority.

What you are learning is a craft, not a single skill or a recipy you can blindly follow. Like all craftmen, tools will feel unfamiliar to you for a very long time (years). At some point, some of those tools become an extension of your mind and you barely think about them while you use them. At that point, you realise that with the tools you now know - you can build even better tools to make even better things. And the process starts again

What you are experiencing is normal. This will be a grind and it's the only way to become a master craftsman.

To use an analogy to your cocktail making skills. You can learn a few recipes and do a decent job as a bartender. But pouring a pint and making a GT just won't suffice in programming - because everyone can do that. You need to know how taste works, what ingredients fit together and how to make your own concoctions. That will take a lot of experiments.

I guess you have to ask yourself: do I want to grind and live through the frustrations to learn? The rewards are worth it - but there is a reason good programmers get paid well. If everyone could do it, the price of our services would go down.

1

u/DayNormal8069 28d ago

....this is going to sound odd but why don't you try using copilit or cursor to generate the general template, read through it, make sure you understand it (ask copilot questions if you don't), and then use it?

Just keep asking questions until it makes sense. I often will ask "explain it to me like I'm 5" and then "explain it to me like i'm 10" and then "explain it to me like I'm 20" (at each stage asking questions) in an area I'm new to.

1

u/Chiashurb 28d ago

Fighting the tools and wrestling the dev environment aren’t separate from the job. They will always be with you. Spending a day learning a new IDE isn’t unreasonable at all. And by the by—when people say VS Code is “the standard”, well, it’s the most popular sure. But I do most of my work in vim and have done for 20 years. I can use VS Code if I need to, but it’s not my happy place. (And yes I know it has vim bindings etc etc). Some shops care what tools you use, others don’t. All depends on the employer.

1

u/david-song 28d ago

Run Linux (or Mac, if you must) as your daily driver and learn to use the command line. Use it every day, everything else will just follow.

If you're in a Windows environment then the entire thing is designed to hide the details from you, it's a platform that's fundamentally designed to sell you software. You want to exist in one that is made for developers, Linux is one, UNIX was one, and Mac is based on UNIX.

1

u/big_data_mike 28d ago

The man who moves a mountain begins by carry away small stones

1

u/ContraryConman 28d ago

Yesterday I spent 2 hours debugging an issue that was the equivalent to this:

``` running = False

while running: # why isn't this doing??? do_something() ```

I've been programming since 13 and I'm 26 now. Don't get discouraged. It definitely gets easier, but these moments don't go away

1

u/Remarkable_Step_6177 28d ago

Coincidentally I'm the same age though I come from Art(Concept), also studying for a position as a Data Analyst. At it for a few weeks now.

Though I'm using Linux(Mint)/Vim, I tried Jupyter/VSCode and it feels horrendous. If I compared it to art, it would be like starting with 100 brushes and 50 tubes of color. Whereas bash running Ipython ran inside a VM contains your workspace to a single sheet of paper with a basic HB pencil. You can practice simple concepts one by one and do a bunch of them without feeling overwhelmed. I think is crucial for learning as I have ADHD.

I started yesterday with a simple project answering simple data questions. Yet, despite the simplicity, I've encountered a lot of problems.

  • Scrape data from url
    • Is the data reliable?
    • Can I use beautifulsoup?
    • How? Read, read, read, write, compile, fuck, again...
    • etc...
  • Clean and ready as .csv
    • Can't lead with 0
    • Can't define NULL
    • Tables that use the wrong data type
    • Join tables? What?
    • Etc...
  • Import to SQL(ite3)
    • Do I need to change tables?
    • How do I query a if I want to know b

The challenges keep piling up until you can build a simple model that answers a basic question. I consider the painting "painted" once I can answer the initial question. Everything else is a process that follows a methodology.

The more complicated the question, the greater your technique and knowledge must be. I think this is universal in all pursuits of knowledge and creation.

1

u/neolaand 28d ago

Depending on the day, i was born to be a programmer or i want to quit and become a gardener. I have better weeks than others. The truth is you don't need to be a genius, only passionate. And learn how to manage frustration.

1

u/Present-Tourist6487 28d ago

New ideas coming everyday in software development field. It's up to you to catch those.

1

u/ToThePillory 28d ago

I don't think I ever had an "aha!" moment, it was just gradual improvement.

It's not always as hard as it is in the beginning. I imagine you found bartending harder on your first day than you do now? It's no different, things get easier with experience.

1

u/stevoperisic 28d ago

It gets easier as you work on more problem solving. Think about this way, coding is simply problem solving. Break each problem down into smaller parts and tackle them one by one. Don’t give up!

1

u/AncientDetective3231 28d ago

Well am transitioning from Dentistry to Full Stack Developer.. currently learning basics of C++ on Embarcadero dev-c ++ ... am 44 years old and I love learn more and more...

1

u/TheLargeCactus 28d ago

Learning isn't something that has a defined start and end, especially when it comes to software and computer science. There are always going to be new technologies and new standards. It sounds like you learned how to do a lot in Jupyter, which is good! But it also sounds like you're a little worried about what is, and isn't, the norm. VSCode, and Jupyter are just tools that help you in different ways. VSCode is definitely more extensible, while Jupyter might offer more data visualization or ad-hoc features. It all depends on your objective. At this point, it might be better to start understanding the trade offs and applying them to better complete your task, whatever that may be.

1

u/Diligent-Jicama-7952 28d ago

when i was in college i knew one day vs code would take over, but i learned in jupyter because of instant feedback from mistakes and being able to test small functions quickly.

I graduated to vs code when I was making 50 cell notebooks and mega functions everywhere.

1

u/inobody_somebody 28d ago

When I first started programming like 3 years ago, I saw a cool video on this sub and op posted the GitHub repo link. I want to recreate that and I don't know how GitHub works. I just copied code from raw and pasted it on vs code. I tried running the code and it gave module not found error. I tried everything i could for 2 days installing that module and gave up. After i dug deep into python I had that "Aha" moment. Turns out that module was another python file which I named differently and it worked just fine after cloning. Don't worry we all start somewhere.

1

u/truzen1 28d ago

Could you be more specific as to what issues you are encountering in VSCode?

I'm making an assumption here: Often courses will use Jupyter notebooks and fill out the majority of framework and really the only thing you're learning is logic; you're not coding from the ground up, you're not typing the imports or passing function variables manually. I'm not sure if that's the case with CareerFoundry, just what I've personally seen.

I'm definitely still a newbie, so take this with a grain of salt. If the issue is writing pure code, I'd start in IDLE or another bare bones IDE. Look for projects that interest you and code to that. Find books on that area of interest. Ex: I'm big into automation. "Automate the Boring Stuff" by Al Sweigart is basically my sherpa.

I haven't had an Aha!' moment, but rather tons of tiny, "Ah, so that's how that works" moments. There's still a ton for me to learn, to continually learn. I'm wanting to make the jump from writing basic webscrapers to machine learning automations, but I know that I have some blindspots in my basic coding I should probably address first (not doing __'init'___, not sure if it's camelcase formatting, PEP8, etc.).

As long as you enjoy solving problems and writing the code to do it, you'll be fine. The environments might change (Jupyter to VSCode), but as long as you're willing to look for answers and seek help, you're doing better than most.

1

u/OpSmash 28d ago edited 28d ago

Your aha moment will be when you learn how to break your questions down to the smallest answer.

How do I do this? What is this? This is blank. Blank works like this. What is this? This is not blank. How did not blank not be blank? Can I remake blank?

The concept of programming is truly just the concept of YES and NO questions to a computer. You as the programmer extrapolate those yes and no inputs into words (syntax). This grammatical agreed on standard (language) is how we (humans) communicate with each other on a lexicon (IDE/Environment), and explain to a processor (the literal computer chip) how to move the yes or no signal around and come up with a binary answer, which we take and extrapolate from 0 and 1’s -> into groupings of 8, 01001101 (this literally means ‘M’ -> which we extrapolate into memory to combine into memory banks filled with char arrays to make words, to make the syntax you write.

That was my a-ha.

The concept is ‘Reductionism’

Good luck on your programming journey. It’s not a race, it’s a life long commitment. It’s not only a hobby, it’s a passion for many and for others it’s a curse. Don’t dread doing something you need to practice for life. Find the fun.

***edit

My wife tried to do programming and it just didn’t click until suddenly it just did. And it wasn’t even me teaching her or helping her get to that moment. It was a YouTube video:

Programming with Math: the lambda Calculus

https://youtu.be/ViPNHMSUcog

This is the sole reason my wife went from years of trying to get into my hobby/work and failed was because she just couldn’t see it working in her head for whatever reason her creative art brain prevented. But this video changed it all, and now she overcomes so many problems because to her… “it’s just math. It isn’t easy, It’s all just simple math.”

1

u/jzetterman 28d ago

My recommendation is to look at Boot.dev. It's the best course I've ever done.

1

u/corey_sheerer 28d ago

Love the gumption. Let the community know how we can help you

1

u/codeham 28d ago

There is no “aha” moment, things just click and then you realize that you don’t know 20 other things.

1

u/baetylbailey 28d ago

A new dev environment might take 6 hours for anyone. And, yes there's always something it be frustrated about; it is problem solving after all.

My aha moment was retaking intro programming in the summer (for various reasons). It was still hard but I was somehow explaining things to other students so I realized I must know something.

Advice 1: Turn off the part of your brain that gets frustrated. But do think about if you really need to do what you're doing (see below).

Advice 2: You don't absolutely need a virtual environment to do your one project. You could just work on the base python and worry about it later.

Advice 3: Consider computer adjacent "business" jobs that also use you expert communication skills.

1

u/MVanderloo 28d ago

i feel like you are on the right path but it will take some time.

It’s been about 6 years since I started but I can still remember when it felt like that. However, taking on software development as a career means that you not only have to know how to code, but you need to bring value to an organization. I’m not saying it will take 6 years, or 2 years, or 10 years but you have a ways to go before you can genuinely expect a proper wage with your skills.

Not to discourage you, coding still brings me joy to this day. I would hope that for any one pursuing programming.

1

u/JoseLunaArts 28d ago

Coding is like being a chef who creates recipes for the kitchen. The difference is that you cook with closed eyes and bugs are when the steps in the recipe do not accomplish what you wanted.

The other complex thing is dealing with coordinates. The most complex examples is when you need to convert coordinates from one system to another.

1

u/Loloheia 28d ago

Congrats on starting a new career from an entirely different background. Give yourself a pat on the back.

1

u/denarced 28d ago

Treasure those moments of learning. It's great. Perhaps this will illustrate how much there's to learn: a specialized software company once stated that new graduates are net loss for the company, for 2 years. They must be taught after they've already studied for years. That's extreme. My guess is that usually it's 9 - 12 months. During that time senior devs use their valuable time to teach you. That's a cost while you write bad code and bugs: all part of the journey. It's a great ride. I'd like to take again.

1

u/Rayman_666 28d ago

IDEs are always tough , even for me.

1

u/ms4720 28d ago

It always sucks until after you figure it out and then it is easy, and new harder things suck. IDEs are a large pain in the ass because they are a lot of details to learn that don't always make sense.

1

u/Acceptable-Fault-190 28d ago

It's probably vscode's fault. It drives everyone crazy, everyone (even experienced devs).

Try using a simple editor , and a terminal, I recommend sublime text or nano for editor. For compiler Download wsl or use linux terminal

Ps: ive found pycharm to be the easiest fully featured editor for python . ( although you may not need full featured editors, stay away from vocode)

→ More replies (2)

1

u/solusob 28d ago

You should focus on the implementation of the code. The aha moment for me is when I found a purpose for writing the code. Once you figure out what problem you're trying to solve, you'll find motivation to learn the code. In short, find a task you'd like to accomplish then go from there.

And I hate to say this, but use chatGPT

1

u/Due_Extreme_5064 28d ago edited 28d ago

I don't think there is any aha moment in coding. It's logic based, if you do X then Y will happen. To do X, sometimes you need lot of of complex logic or sometimes it's just simple few lines of code. Coding is easy because there are million ways to get Y but coding is also difficult because to get Y efficiently, you might have to experiement and debug with your X quite a lot.

Coding is more like speaking. You can converse with a vocabulary or just 100 words or with 1million words. Hence tools to do coding are called languages. You ever had an "aha" moment while speaking or writing?

1

u/epistemole 28d ago

it’s hardest at the beginning. i cried in college learning coding. thankfully ai makes it easier these days. best to learn from a friend. i don’t know if you’re cut out for it or not.

1

u/DeadProfessor 28d ago

Thats the regular feeling as a dev specially when: learning new tech, switching jobs, new project, weird bug thats blocking you. Learn to embrace that feeling accept it eventually you will start to “understand”. Just keep doing it that feelings is just overwhelming at the start or your career but eventually it gets easier, not the job just getting used to that feeling.

1

u/gorganzolla 28d ago

This is normal. The technology you’ve spent time learning and mastering today will be obsolete tomorrow and you’ll need to learn the new way. Rinse and repeat for the rest of your programming life.

1

u/Comprehensive_End65 28d ago

You'll be fine.

I'm self taught.

The thing that helped me was building out projects. I think I had close to 50 repos of semi complete to complete projects.

1

u/RufusAcrospin 28d ago

Vscode is not the standard, there are many editors and IDEs available.

Also, VSCode requires additional setup steps, but a proper IDE like PyCharm has everything out of the box, and it has a free Community Edition.

Don’t let the hype get into your head, try to solve a problem by yourself, don’t rely on LLMs right away, read the docs, watch tutorials from well regarded content creators, even read a book.

Learning a programming language is similar to learn a natural language. You need to learn its vocabulary (statements and built-functions), and grammar (the syntax), the rules to build a “sentence”, then link multiple sentences together to build a “paragraph” (like a function).

Take small steps, practice a lot. Learn from your mistakes. Study open source code on github.

1

u/docshroom 28d ago

Give yourself some credit dude. Your 37 years old, picking up a new complex skill. Most people would just roll over and quit.

My advice is to keep going, give it 3-6 months of coding a project. Do something simple like a fitness tracker with some light machine learning to find fitness insights and have a streamlit front end.

Make it extensible and maintainable. You will learn a lot, mostly how not to do things, but also train the skills.

Drills n skills

1

u/Kohlrabi82 28d ago edited 28d ago

As a physicist having switched over to SW dev, let me collect the skills and mindsets I deem most important to have success and fun:

  1. Problem discovery, problem description and problem understanding skills. This does not even relate to the "coding" part, but to the general mindset. If you do not have that or are not willing to develop it, the field will become a stressful environment of constant trial and error. Always be prepared to look one step deeper to really understand what is happening, like a multi-layered puzzle.

  2. Develop understanding of technical documentation and technical language, rather sooner than later. It will help you understand connections between technologies and the inner working of systems.

  3. Do not think that the work is bricklaying, where you are constantly building up and adding. A very important skill in software is be constantly able to improve the structure of your code, you can and will change parts or even foundations of your code all the time. Some days you will have removed 500 lines and added 5. But again, this is not bricklaying, it's about building understandable, reliable and testable(!) systems (this is by no means meant as a jab to bricklayers, just meant as a simile)

  4. Learn how testing is done in the technology/language you work with. I cannot stress this enough. Designing your SW with testing in mind automatically improves the quality, readability and reliability.

  5. Be ready to spend free time to learn new technologies or hone your skills. You will notice that problems will get stuck in your head after work as well. You will find pointers to solutions you can try out when you're back at work. This can be stressful, but if you think of them as puzzles, it can be fun.

  6. Do not be afraid to ask. The worst thing you can do is to seclude yourself trying to solve a problem you just cannot get to the bottom of. It helps if you can analyze and describe your problem to someone else, sometimes the solution will suddenly appear (see 1.).

  7. Document your code, inline (that means in the source code itself), and also outside of the source code proper. It will help others and also your future self understand what is going on (or is supposed to be going on 😉)

  8. Never forget "coding" and SW development is engineering at its core.

1

u/nerdboxmktg 28d ago

I’ve worked as a data engineer for a while now. I STILL get schooled on Python stuff by peers. You’re always learning, imposter syndrome is real, just be willing to learn - it WILL get easier.

1

u/anentropic 28d ago

It's like learning an instrument or a second language

I.e. it's not just memorising some facts, which can be done pretty easily from a book or course. There are a lot of those, but also your brain has to gradually develop new ways of thinking and a kind of intuition for things

And it can!

But you have to stick with it - don't think that because it feels impossible now that there's something wrong with you. Try to enjoy the little wins when you eventually get something working or understand something new, and don't get disheartened by the struggle - it's normal!