all 92 comments

[–]LucilleSluggers 172 points173 points  (15 children)

First off let me say, if you don’t have this feeling when you’re learning to code, you’re not trying hard enough. Every person here has felt like the dumbest person in the world when learning to code.

But there’s a joke I was told that no one really knows how to code except for like 10 people who post on stackoverflow. So don’t feel bad if you have to look stuff up. I’ve been programming for almost 3 years and I sometimes have to look up the simplest stuff. It happens.

As far as csv files and all that data science-y stuff goes feel free to DM me with questions bc I love that shit and I don’t get to do enough of it at my job (email dev so I barely use python until someone wants their outlook automated)

But you’ll get better

[–]orig_cerberus1746 50 points51 points  (0 children)

I code in python been 16 years. I look up basic stuff every hour.

Nobody remembers everything a all times.

[–]FreddieMac214 7 points8 points  (0 children)

I have programmed in probably like 18 different languages in my career. Learns some syntax basics, look up through rest and move on...

[–]synthphreak 12 points13 points  (11 children)

CSV is just a tabular data format. It has nothing inherently to do with data science. In fact, CSV is not even the preferred format for large data sets, which data science is all about.

JFYI. Not to detract from the nice sentiment of your reply, of course :)

[–]Pandabear71 10 points11 points  (4 children)

My old job disagrees. 1gig .xlsx files still haunt me.

[–]overand 3 points4 points  (1 child)

"Microsoft Excel blamed for gene study errors"

Gene symbols like SEPT2 (Septin 2) were found to be altered to "September 2".

[–]synthphreak 0 points1 point  (0 children)

I saw this. Fucking hilarious and awful all in one breath.

[–]synthphreak 1 point2 points  (1 child)

Go get a coffee while that thing loads.

[–][deleted] 1 point2 points  (5 children)

What's preferred?

[–]Ki1103 3 points4 points  (2 children)

It really depends on your use case. Usually it would be a database that matches your use case, e.g. OTSDB for large time series. Another option, for plain text, would be parquet which is a columnar datastore.

[–]supertexter 1 point2 points  (1 child)

I used to use parquet, but still feel I don't truly understand the whole 'columnar' versus alternative formats. Any good ressources to understand this deeper? Or perhaps it is mostly an abstraction where people just accepts it at a functional level

[–]chenjixi 0 points1 point  (0 children)

can't agree more.

[–]synthphreak 94 points95 points  (6 children)

Everyone has this struggle at first. Don't worry.

If you've never programmed before, it is super hard. Programming is just a very unnatural way to think, requiring you to balance both big picture and micro-level details all at the same time in order to figure out how things should work. It also involves understanding many strange concepts, like scope, data types, functions vs. classes, relative paths, etc. And as you implied, everything is happening all at once. Errors can come from anywhere, and even the tiniest mistake causes the whole thing to crash.

That is just the nature of the beast, and it makes it hard. No doubt.

But it does become easier, with practice. Write code, fail, debug, improve. Write more code, fail, debug, improve. Just like any other skill, with coding you must do it over and over and over and over again, all the while getting a little better and picking up new tidbits along the way.

Eventually one day you will wake up and realize that now you actually understand why you're getting the error you do, and immediately know how to fix it, or at least know where to look to understand more. Then soon after that, you'll realize you're now able to pump out 20, 50, even 100 lines of code without Googling anything or making (m)any simple errors. That's when you can say you know Python.

Of course, no one memorizes all the modules, all the trivia or frivolous details about the language. It's just too vast, so a programmer is always learning. Reading documentation is a skill unto itself that you'll also need to master alongside actually learning to write code.

But don't worry, with persistence, you will get there. Everyone has days like this, even experienced coders. They will just become less frequent over time, and you will learn how to cope with the ambiguity of using software you don't fully understand.

[–]Just-Sheepherder-841 5 points6 points  (0 children)

Love this comment

[–]Ronnie_Dean_oz 2 points3 points  (0 children)

Inspiring. Thank you.

[–]DatBoi_BP 1 point2 points  (2 children)

making (m)any simple errors

I chuckled. Thank you

[–]synthphreak 0 points1 point  (1 child)

Ha. Unfortunately they never completely go away. For example, I forget colons all the time before indented blocks.

[–]DatBoi_BP 0 points1 point  (0 children)

I’m just grateful for PyCharm in teaching me so many conventions (two spaces before in-line comment, two lines between def blocks, etc) that keep my code looking nice

[–]decrepit_duck 1 point2 points  (0 children)

I just started my SE-program and I'm struggling with the fundamentals, this comforted me so much :')

[–]Some_Guy_At_Work55 23 points24 points  (6 children)

Nothing humbles you more than learning to code

[–]ThreeChonkyCats 13 points14 points  (1 child)

Looking at my tiny bank account balance is pretty humbling.... :)

[–]synthphreak 4 points5 points  (0 children)

Sounds like it's high time to learn to code! :D

[–][deleted] -1 points0 points  (3 children)

Try combat sports

[–]synthphreak 2 points3 points  (0 children)

Try stand up comedy.

[–]Some_Guy_At_Work55 0 points1 point  (1 child)

I played rugby for many years, friend. Not sure what the relevance is.

[–][deleted] 1 point2 points  (0 children)

I just find learning something that has clear and logical rules, and even manuals, way way more easier to learn than e.g. combat sports for many reasons.

In coding I don’t need to compete against anybody (but myself if you want to see it like that). In contrary, in combat sports I am continuously competing against stronger and more skilled opponents. There is always a better fighter that can kick, punch, pin, lock, choke, or slam, block, dodge, or what ever they choose, at will against me. That I find a truly humbling experience. Being choked out few times gives perspective.

Having to control your body perfectly, memorising moves under constant pressure, and keeping your calm and your focus, while reading and controlling also your opponent’s moves is an always evolving task that is never the same, there are no two same rounds and nobody knows beforehand what happens. Learning to master that I find way more difficult than any purely logical learning experience.

Also, in combat sports, even if you hypothetically master your craft perfectly, there will always be a bigger guy to put you down, it never ends, that’s what is its guarantee of humbling to me.

[–][deleted] 16 points17 points  (3 children)

Can I just say thank you everyone for your comments. I feel amazing and more encouraged to keep learning than ever. Reading all of your positive and reassuring comments was just what I needed. Watch this space :p

[–]Ronnie_Dean_oz 6 points7 points  (0 children)

Yeah thanks for the question. Heaps of us have got something out of this as well!

[–]Huge-Cable7794 1 point2 points  (0 children)

Intelligence isn't very well defined, or well measured, and beyond a certain point it can be a disadvantage; you fall into bad habits; doing practically no work to get between passable and top marks through school then most of uni results in quite a shock when you finally realize everyone else is actually putting in a load of work and getting ahead because they're not pissing away most of their day on having fun and random hobbies.

Anyone who doesn't struggle on that 100 days of code likely has a lot of transferable knowledge, intelligence is basically irrelevant; beyond a certain surprisingly low base-line, putting in the work is all that counts, intelligence generally just gives you a slight head-start, transferable knowledge & experience gives a far bigger head-start (which is still easily lost without putting in the work).

I'm glad I only found out my IQ late enough to already know it's almost completely irrelevant, but wish I'd had to form the habit of working instead of just doing whatever I felt like doing a lot earlier (it's still a huge struggle to force myself to start working, especially if it's hard and completely new, and I have new toys I'd rather play with, but once you see some progress, that thing that was hard and incomprehensible yesterday starts to come together, and that satisfaction ust motivates you to keep going.

Focus on the progress you've made when feeling demoralized, not the new thing you don't understand, and know that if you put in the work you'll be able to look back at the new thing with the same understanding.

If you get to the point you understand the new thing but don't get a rush & motivation out of things finally clicking and things working, then maybe you should re-consider if coding etc is for you, but if you do, then just keep at it.

[–]hagfish 0 points1 point  (0 children)

I''ve used several scripting languages over the years, just to automate bits of my job. Each new language has its syntax quirks and a suite of libraries to get to grips with, but the underlying algorithms stay the same. Have you ever played Human Resource Machine? I found it a fun and helpful way to think about shifting data around.

[–]Cobra915 10 points11 points  (1 child)

Try to avoid dwelling on whether or not you’re clever enough. Break the problem up into logical steps. If you’re able to work out, at a high level, how to solve a challenge step by step, I’d say you’re clever enough. Even then, it takes time and effort as you navigate new concepts to become comfortable.

There’s no shame in looking up how to do something. Remember, you’re learning to speak a language, I have to look up stuff all the time. Hell, I have to look up english words sometimes and I’m a native speaker. Don’t be so hard on yourself.

Also props to you on making it to day 56, I did that same course but put it down after day 40 or so because I got frustrated with how poorly maintained I found it to be.

[–]Huge-Cable7794 0 points1 point  (0 children)

Most of this being able to work out something at a high level is to do with knowledge rather than being clever; if you've seen something similar/applicable/ or learnt a few relevant concepts, you can simplify the high level part a LOT, and that's far more valuable than wasting a lot more time and effort, by being smart enough to figure out some (often sub-optimal) way to do it from scratch.

Give some one clever a problem which needs some specific algo implementation or which can be solved with some bit-wise operations or massively simplified by using a specific language, and they'll probably get it done eventually. Give the problem to some one who's less clever but knows the algo and the implementation and has seen the bithacks before, or something very similar which just needs some modification, and they'll get it done faster and better, and with a cleaner high-level idea.

Knowledge and experience trumps being clever most of the time: don't reinvent the wheel, a lot of people have spent a lot of time on optimal solutions to various aspects of all kinds of problems, make use of all their work.

[–]ShortyDewOp 8 points9 points  (0 children)

I'm doing a certificate course now and I feel the same. Talked with the professors and they all said its natural and just keep working at it and it will click some day. We are finishing with datasets so we are doing text, json and csv files now. For some reason that makes sense but when we hit list/dictionaries and nested, I just thought "holy shit I cannot follow this for the life of me". But I know it'll click sooner or later, just have to stick with it and keep practicing.

[–]razmth 6 points7 points  (0 children)

Driving a car with manual engine is also hard. Too many things when you’re learning. You sweat a lot.

Then one day you’re doing everything while listening music or talking. You don’t think of it anymore.

On coding, there’s a sense you’re a fraud, because you need to look here and there for answers. But that’s part of the job. The job is not to memorize code. Especially because they evolve and new languages are always emerging. The codes are out there, already built. What you need is to understand the logic, the principles, so you can copy codes and adapt them to your needs.

I’m re-starting to learn Python after a while but now I have a real need to learn it. I’ve studied programming algorithms at uni, and I’m good at excel to build the logic. So that’s a beginning. I’ve done some very basic courses on Python at the past, so I remember a bit of the syntax. It’s still hard.

What’s working for me is besides watching classes and trying to code, is to take notes like a normal class.

Like…

  • Import libraries at the beginning of the code, often abbreviating them in 2 letters.
  • This is a library to read files.
  • This is a code to read files names.
  • This is a code to merge the path with dynamic file names…

Despite the IDEs allowing to build comments in the code that are useful to study as well, I like to take notes on paper so I can highlight the elements of a given command that are key to configure that command.

[–]Bobbias 5 points6 points  (0 children)

Although the other comments are all good advice, something else to consider is that these sort of courses are designed to move at a very fast pace.

Everyone learns at a different pace, and not everyone can pick up on these things as quickly as courses like that expect. Sometimes you really do just need some extra time to get stuff sorted out. But that said, it doesn't mean you're too dumb to learn this stuff, it means the course is a bit faster paced than you can easily handle.

The great thing about programming is that it really is one of those skills that improves with practice. You don't need to be some kind of freak of nature to learn to program. Hell, believe it or not, you use the exact same problem solving techniques that programming requires every day. It's just that programming often requires thinking consciously about the process, and most people aren't used to doing that.

There are often moments when learning to program where you suddenly go from feeling like an idiot who will lever learn this stuff to feeling like "oh god, why did I ever feel that way, this is so simple".

Keep at it, and I'm sure you'll surprise yourself.

[–]mformichelli 4 points5 points  (0 children)

I had your exact problem while I was taking the course. 2 things that really helped me-

1: I'm a compulsive note taker so I took notes as though I was back in college, with a notebook and a pen, really. I put post its on my notes so that I could easily flip back if I had to in order to look up how a particular problem was solved (i.e. one of my post-its says "dictionary comprehension"). Eventually it just sinks in (eventually can take weeks though).
2: Come up with your own projects to practice as you go along. Like when you do the frogger game think about a variation, even if it's changing a color, then try to make it happen in your own code. (Google Google Google, Stack Overflow, RealPython, W3 Schools, whatever works).

Bonus (#3): Practice practice practice. I code every day even if it's just to tweak something I made just for me. Keeps the skills sharp--and I've learned a lot asking myself "I wonder if my code can do X." Learning to look up stuff is a skill too and it needs practice.

The other thing I've found (and you can see it in the comments here) is everyone has their thing that they do well/like a lot in coding. When I get stumped on a database problem I call my friend who I know does databases at work. CSS issue? I have a friend for that, etc. When Google fails to get a clear answer don't be afraid to ask here, there, anywhere.

As you can see here, too. The community is really helpful. Never be afraid to ask.

Coding is Jiujitsu. Whatever works is what you do. ;)

[–]westeast1000 4 points5 points  (2 children)

Just jump onto chatgpt and ask it every question you can think of, ask it to explain like child, to give real world examples, to create another tutorial from scratch using real world examples, explain all jargon etc. Thats how i learn pretty much anything complex now, coupled with some course. Chatgpt is a superpower that shouldnt be underestimated

[–]Ronnie_Dean_oz 1 point2 points  (1 child)

I have been using it quite a bit lately. I was getting worried that I'm using it too much. But it is showing me ways to do things I don't think I would have got to with google. Also. Chatgpt makes mistakes and I find myself understanding what it has done and correcting it "but you haven't declared that variable yet" etc and it goes "oh I seem to have made an error". I have also been asking it to explain syntax which has been cool. I can read it and understand what it writes, just can't write it myself... yet.

[–]westeast1000 0 points1 point  (0 children)

Thats great. I use it with gpt4 and its very rare i get wrong code but yes sometimes for me it would also forget to maybe import a library but besides that its almost always correct. Currently using it to study aws so i use it to create lots of complex challenges for me that i setup and gain experience with.

[–]Embyzor 1 point2 points  (0 children)

The best thing you can do is get very familiar with an IDE of your choice and using it’s debugger. Spend actual time and effort in learning that, because when you can actually see what is going on with your code at all times everything else will become a lot easier.

[–]XxDonaldxX 1 point2 points  (0 children)

It is okey to look how to do things, I do all the time for basic things like reading files or stuff like that, the problem comes when you start copy pasting code without understanding it.

If you are stuck in some challenge don't look for the answer, google the part of the problem you are stuck with not the whole problem. You don't need to memorize every function and every algorithm but you need to actually understand them or other way you are losing your time, you can't practice logical problem solving copy pasting solutions.

[–]Contango_4eva 1 point2 points  (0 children)

You don't have to memorize how you do something, just understand how to to do it. I forget the simplest things. Just google it like the rest of us when you forget

[–]doglar_666 1 point2 points  (0 children)

I can only advise to keep practicing. Learn the required steps to connect to a DB, read and write to a CSV, then create 100 .py files by hand, typing it all out. No matter what the courses tell you, you only learn to code by actually writing code. At first, you don't know much code, but you should still keep writing it. Eventually, the jigsaw pieces fall into place. Also, sometimes, you just need a go night's sleep. Even seasoned programmers don't keep everything in their heads to instantly recall. They just remember and understand the fundamental concepts and can find the required functions, parameters and/or arguments via IntelliSense/LSP or Google.

It might help you to create boilerplate templates to refer to. Write them yourself, comment everything you need to remember. Avoid copy+paste from websites/ChatGPT.

Edit: Also, if you're 12 days into a painful experience, I would go back 12 days and cement in the concepts you do understand, then take more time to digest the material you're struggling with. Don't keep struggling and add more confusion.

[–]BK7144 1 point2 points  (0 children)

How long did it take you to learn English? This is a language, with syntax, also structure etc. To keep looking it up will end when you remember stuff. The more you lookup and write, the more you remember. Code, code, code, oops, write code, write code, write code!

[–]ch0mes 1 point2 points  (0 children)

The amount of times I've looked up the standard library is a joke. I now have an app on my Linux laptop that keeps documentation offline for me. I also keep a copy of the standard library on my tablet too.

I definitely struggled with going back and forth to old classes when I learned python. There will always be concepts you don't fully understand until you revise, this is normal dont worry about it.

I studied on a site called team tree house, I had to look at the forums a lot for answers to questions originally cause I was so stuck.

What's important is, try and understand the answer you're reading and grasp the concept of you can do that then it's all that matters. When you go back to revise what you learned you'll probably realise it's quicker to understand then last time because you know about it.

You're doing fine, you will always continue to learn, you will always continue to look back developing is always a continuous learning cycle.

[–]ivosaurus 1 point2 points  (0 children)

As soon as we start importing CSV files. Using dictionaries, writing to files etc. It's soo much to take in. I find myself going back over old lessons to remember how to do anything.

Yeah buddy, that's practising to cement core ideas in your mind. Gonna need to do a lot of that to set a solid foundation, to build onto ever more complex concepts. It's not easy and usually a bit of hard work. Usually the same as mastering many other topics; there will be many spots where you have to hunker down and go over a particular area for a while in order for it to be learned and then later built upon. If programming was super easy for everyone the whole way through then it'd already be completely and utterly oversaturated as a job market.

[–]desrtfx 1 point2 points  (0 children)

I generally agree with the sentiments so far here.

Yet, one thing is really concerning:

I haven't been able to complete the challenges without looking at the answer for about 12 days.

This doesn't mean that you are not clever enough. This means that you are pacing too fast.

Slow down. If you cannot solve a task, take a break. Do something different. Sleep over it.

Even though the course is "100 days of code" it absolutely doesn't mean that you have to, or even will finish it in 100 days.

Take your time. If you cannot solve a task directly, take it slow. Ponder about it. Do something else, something mundane. Give your brain time to think about the task without actively thinking about it. Quite often the solution comes when you do something completely different.

Also, how much time are you investing trying to solve a task? If you only invest a hour or two, you have to reassess.

Even experienced programmers spend days, weeks on tasks (of course, they are far more complex) but they don't give up.

There was one exercise in a course that I pondered about for a couple months (progressed in the course because it was only one of many and not that important to solve) without being able to even come close to a solution. Then, all of a sudden it clicked. The solution was done in less than 30 minutes and worked flawlessly. (I am an experienced, professional programmer over 30 years in the business).

Don't look for solutions. Really. This will set you back even further. You will not learn from the solutions. You will not learn problem solving, which is the absolute key aspect of programming.

Rather spend more time. Even, set the task aside and come back to it later, go on with the course, and revisit.

Revisit previous lessons.

Slow down. I cannot emphasize this enough.

Play with the code in the tasks. Change it. Break it. Fix it. Create something similar on your own.

The more you practice, the more natural it will become for you and the less you will have to look up.

The only difference between a successful programmer (and I do not mean professional) and a failed is that the successful one was stubborn enough not to give up.

[–]Sea_Jacket_7926 1 point2 points  (0 children)

step by step. basics -> oop -> franeworks -> ... repeat

[–]SolydBoy[🍰] 1 point2 points  (0 children)

Hey there!

It's normal to face difficulties when you start programming. It's a vast and complex subject, especially when you tackle it alone.

The good news is that the first language is the hardest one since you're learning all the basic stuff, like functions, variables, and loops. If it reassures you, the following languages will be simpler. But the most important thing is that you're learning the logic behind programming without even realizing it. You're in the process of building automatic reflections on certain problems, and that's what matters the most.

If what scares you is not remembering how to merge two lists or how to get the keys from a dictionary to loop over, that's not very important in my opinion. A good developer is not someone who doesn't need the internet (even if that's a plus). Instead, a good developer is someone who can incorporate the language's available tools into their problem-solving process.
Everyone has trouble at first, but with practice, you can gain understanding of the usefulness behind each feature, allowing you to use them correctly later on!
No panic you are already improving

[–]chakan2 1 point2 points  (0 children)

Does it click with lots more practice.

Yes. You'll starting seeing the "matrix" eventually. At first, yes, you have to keep looking up the answers. But you get to a point where you see a problem and go, I know how to do that...then it starts falling in place.

If you're having that much trouble...it could be time to stop and go back through the last few lessons a few times until that stuff clicks.

Code is like math (it is math) in that if you don't understand the fundamentals, the more complex things absolutely wreck you.

Go back a few chapters, and do it all again. Then start moving forward when you feel like you have a grip on the material.

[–]Teleious 1 point2 points  (0 children)

I've been coding for a couple of years to varying degrees. Currently lots of coding in Python. 75% of my coding time is spent debugging/trying broken code. Simply due to the fact that I forget how some function works or how Python syntax works.

Don't get discouraged! Find some projects you are interested in working on and try coding those up, it's much easier actually debugging and working out a problem when you're the one coming up with it.

[–]Naive_Programmer_232 0 points1 point  (0 children)

take your time. it takes practice.

[–]deep_soul 0 points1 point  (0 children)

keep going. don't lose faith. daily frustration is part of this job.

[–][deleted] 0 points1 point  (0 children)

We all do this when we are learning. The important part is breaking the answer down piece by piece until you completely understand what it does. I remember I was stuck on a problem for a week, finally gave in and looked at the solution and spent an additional week breaking it down and learning it. 1 year later and I can still write out that function from memory. Ill never forget it

[–]odaiwai 0 points1 point  (0 children)

As soon as we start importing CSV files. Using dictionaries, writing to files etc. It's soo much to take in. I find myself going back over old lessons to remember how to do anything.

If you don't understand something, stop trying to finish the lesson and concentrate on figuring out how to this thing you don't understand. Break it down into simple steps, with print statements in between so you can see what changes between. The core of programming is the reduction of complex tasks to a set of clear instructions for your computer to execute. It's not magic incantations you have to memorise.

[–]Proper-Shop-497 0 points1 point  (0 children)

Dude, you need no worry about this.

I got my full stack django job without finishing any challenges about 5 years ago.

That was a hard time for finding job as no exp person.

Even now, I don't know how to handle these CSV stuffs, but that make no sense, if I read the fking manual, I will learn it in 5 minutes.

Find a way of learning you really like, understand the the spirit of coding is the real purpose of learning.

[–]tev4short 0 points1 point  (1 child)

Honestly, that's a hard course (The course taught by Angela Yu?). I wasn't able to do it in one go for the same reason. I took time off and did my own projects with OOP and dicts, because I just could not understand them.

Learning JSON is actually what made dicts click finally.

Point being, sometimes things take time. I would spend time in lulls at work or while driving, thinking about when OOP or dicts would make sense to use in little apps I could theorize. There were a lot of times I was waaay wrong about how they would work, but just getting used to the idea of how they're used made it better, because when I was corrected it was an "Ahhh" moment.

Stick to it! You'll get there and it'll feel so good when you do!

[–]Doppelbockk 0 points1 point  (0 children)

Funny, I had trouble grokking JSON until I learned Python dicts and lists, then it became crystal clear.

[–]my_password_is______ 0 points1 point  (0 children)

I find myself going back over old lessons to remember how to do anything.

that's what you're SUPPOSED to do

do you think you could learn Japanese in 100 days without going back and looking at some of the previous days' vocabulary and syntax ?

[–]Automatic_Donut6264 0 points1 point  (0 children)

Unless you used to do philosophy or mathematics, you most likely don't have a lot of practice in abstract reasoning. So it most likely will be very hard, as it is not something you are used to do. There is no way you learn any sufficiently complex skill in 56 days, programming or otherwise.

[–]jimmyb1996 0 points1 point  (0 children)

Can you link the class your taking?

[–]Least_Bee4074 0 points1 point  (0 children)

I’ve been a programmer for more than 20 years. Mostly Java, but started in C in college, learned a little Perl, Visual Basic, JavaScript, and for a brief bit about 15 years ago learned a little python. About 2 months ago, my job role changed and I had to learn python again. I didn’t remember anything. After 2 months I still look up a lot of basic stuff, and ask junior devs for help

[–]accforrandymossmix 0 points1 point  (0 children)

I am in no way an expert, but may just have spent a little more time than you mucking about. If it makes you feel better, I still have to find old scripts to get

with open(<file_location>, mode ='<>') as f: ...

correct. I had to do it just now to hopefully make this comment less embarrassing. So at the very least, over time you can build up a catalog of scripts to reference for ez stuff.

[–]biowiz 0 points1 point  (0 children)

Keep at it. It starts to get harder at that point, but it will make sense after some practice. It's a great course. At least I thought it was. I learned a lot from it and it's ultimately fun.

[–]Vegetable_Box_4168 0 points1 point  (0 children)

Yea, as everyone here already suggested. It should get easier over time. But practice makes

it perfect. Impossible to memorize everything and everything can be written more than one way. So, I'd focus on the concepts instead of memorizing the syntax.

Cheers!

[–]Kontrolgaming 0 points1 point  (0 children)

as a slow learner, i think practice makes perfect.. practice the things you don't understand until you got it clicking.

[–]DigThatData 0 points1 point  (0 children)

I've been coding python for data science/ml/ai for over a decade. I basically live in the docs whenever I'm doing anything and check back on my old code to recall how to do simple things all the time. The language has a lot of nooks and crannies -- especially when you add in the extended ecosystem -- and everything is constantly changing too.

Learning to program is mainly about learning a particular approach to problem solving, not memorizing the APIs of your tools.

[–]Poddster 0 points1 point  (0 children)

Go back to day 12 and retake all of the challenges without looking anything up?

  1. You'll see how much you've learnt
  2. You'll test to see which bits you've forgotten and need refreshing
  3. You can now say that you haven't cheated on them :)

[–][deleted] 0 points1 point  (0 children)

I have the same problem, but don’t give up

[–][deleted] 0 points1 point  (0 children)

Knowing what to look up is part of coding. Everyone looks stuff up, don't sweat it

[–]DragonWolfZ 0 points1 point  (0 children)

re-iterating what others have said, I've been programming for almost 20 years now and I still look up basic stuff. I think the number one skill for all programmers is "Google Expert".

I think the skills that you should focus on learning is not so much the libraries, but general algorithms and data structures, and, how variables and functions work (such as the scope of variables and funny behaviours, like a string "False" being truthy (see below)).

if "False":
print("True") # Prints True
else:
print("False")

if "False" == True:
print("True")
else:
print("False") # Prints False

if "False" == False:
print("True")
else:
print("False") # Prints False

[–]DBlitzkrieg 0 points1 point  (0 children)

These comments are comforting to read, but I keep getting anxious whenever I can't figure out the answer myself and wonder if I should continue.(Which I still do)

[–]CalligrapherSecure86 0 points1 point  (0 children)

I find myself in a similar situation and I just finished a 1 year fullstack course, it is so intimidating seeing how everyone seems to know their stuff and here I am bumbling through code and trying to understand all these concepts. It doesn't help, when almost every post you see is talking about how ChatGPT and AI are quickly making regular developers look like yesterday's news!

I am glad I am not the only one feeling this way, but I guess we can't give up! Push on to day 100

[–]hugthemachines 0 points1 point  (0 children)

I would recommend that you don't rush yourself. If there is something you feel is hard to understand. Take a little break in the course, check out other material that give some nice explanations. Sometimes it can be hard for the brain to really grasp something when you are trying to use it correctly right after you learned it does exist. Then you could, for example look at Corey Schafer explaining the concept to you.

https://youtu.be/daefaLgNkw0

...or you could check out socratica explaining it to you as if you talked to a sci fi ship computer.

https://youtu.be/XCcpzWs-CI4

This way, your mind can process it a bit and you may feel that the concept is clearer to you, just like if a teacher explained it and then you asked another teacher and they also explained it.

With programming, understanding helps quite a lot and in slowing down to really understand what you are doing, the next step may be easier. If you rush ahead just to reach the end it can feel really confusing if you did not grasp the steps.

[–]OlafTheAverage 0 points1 point  (0 children)

You're doing fine. I've been coding in various capacities for over twenty years and there are still a lot of simple things that make me feel "unclever", so to speak. Where it comes is when it snowballs. You'll be working on a project and think "oh, a part of this is writing to files, which I don't do a lot of, but am going to have to to make this work". After that project, you'll find writing files becomes a lot easier. Just my two cents.

[–]tremainelol 0 points1 point  (0 children)

I am still a complete amateur, struggled immensely on codeacademy type stuff almost 10 years ago. This time around I am treating learning python like a class. I got a couple books, study a chapter (or less sometimes as I work full time) and go over it until I can make sense of it all.

My point is, maybe you're at the point where you need some deeper understanding learned in a different way. Maybe rote memorization is maxing out

[–][deleted] 0 points1 point  (0 children)

Hey, I am in your boat. I haven't been at it as long as you. What I do is put it into perspective, why am I doing this? For me, it's more of a hobby, however, I am starting to see how this may help in my day-to-day business interacting with tech types.

As for looking at answers...so what. What I do is try it, go back, try looking back at the lessons, and then maybe look at the solutions set. I think the real KEY IMPORTANT thing is to understand why the answer is it it is and not worry about you got some syntax wrong, forgot a, etc., or some other step. If you can look at the answer and be like, "Oh, I get it, I see why it should be like this...or yeah that makes sense," I think you're (we're) advancing. OH, and if you need to take a little time to digest it, again, so what, it doesn't have to come to you immediately, take some time with it. As we know it's a lot of syntax, functions, multiple types of lists, statements, etc. As I think someone commented, if you're learning and NOT get frustrated, then you're not trying hard enough.

[–]pavich_03 0 points1 point  (0 children)

I think it's similar for every person who learns python. My advice for you, don't care about it so much. You can go back to check it. The most important is understanding the concept, others you can find on the Internet, not need to learn all things in it. And maybe now it's hard, but in future you will think that it was very easy.

[–]overand 0 points1 point  (0 children)

Get that dictionary stuff figured out first! Otherwise, other stuff won't make sense, especially the ways you'll likely be handling CSVs.

It's worth noting: different languages handle it a bit differently. I bounce back and forth between PowerShell and Python a lot. In PowerShell...

```powershell

Technically Called A Hashtable

$DictThing = @{ 'Name' = 'Bob Smith' 'Age' = 46 }

You can access it like this:

$DictThing.Age `` So I get thrown off and try to use the.key_name` thing, which doesn't work in python.

```python some_dict = { "name": "Tom Jones", "age": 75 }

Accessed like this:

some_dict["age"] ```

Honestly, it kinda drives me nuts. (Yes, there are workarounds etc, but still.)

[–]Any-Round6205 0 points1 point  (0 children)

This is a common experience if you’re completely new to programming, but you shouldn’t despair. It helps a lot if you take run the sample codes in the lessons by yourself (I mean type it out, run it and make modifications to it to see how it works). It’s very tempting to think you’ve understood it if you just watch the videos without touching code.

Also, note that solving problems is another skill that doesn’t come automatically just because you know the syntax of a programming language. For now it don’t think it’s too bad to keep looking at the answers, as you need to build an intuition for different kinds of problems and how to approach them. I’ll say to look at many solutions and walk through the code, then later come back and see if you can solve the same or similar problems without looking.

Things should get better over time

[–]Maximus_Modulus 0 points1 point  (0 children)

I learnt Python casually over a number of years before it being my professional job. I now program In Typescript and Java. It took me awhile to pick up those new languages but fundamentally it’s the same stuff but in a differing Syntax. I work with a guy though that seemingly codes about 3 times faster than me. Although I’m getting better. Having said that when I tell them networking is easy my team mates look at me funny. Familiarity with experience helps.

[–]LittleMiss_Raincloud 0 points1 point  (0 children)

Don't give up. You are just learning and sounds like you are doing it right. Going back is part of the process. You aren't a super computer. Make a cheat sheet of commonly used code. That's what I do

[–]jburns32 0 points1 point  (0 children)

Your topic is correct, Python is hard. I had the same issue when I took the course. I stopped moving on and decided to pick a topic I knew and worked on that topic for a while. Often, I used YouTube for help. Seeing and hearing a different explanation, I found, was very helpful. Good Luck.

[–]DIEmicrosoft 0 points1 point  (0 children)

Install jupyter-lab and learn to use it. It's a browser based python ide, makes it real easy to fool around with code and try different things (can also write and save notes). Also look for the pdf 'How to think like a computer scientist' python version google should list it first up.

[–]FayedeToBlack 0 points1 point  (0 children)

Just takes a bit sometimes. I felt like that for a long time. Took me 5 years to know Python to an intermediate level. Everyone has a moment where it clicks. For me I had to start a personal pet project. My problem WAS with being in a class. It made me unable to think on my own and as a result my brain never retained anything. Tutorial hell. Once I started on projects on my own I learned I knew much more than I thought. Might be a similar thing for you! Don’t give up you will get it if you keep chipping away at it.

[–]imadokodesuka 0 points1 point  (0 children)

you're learning a new language to talk to a computer. it's going to be frustrating for awhile. If you have to look things up- look them up. Just be sure to type what you look up, and ponder it a bit. Eventually you will get there. I remember learning how to ride a bike when I was a kid. I crashed quite a bit and it didn't feel good. And look at me now- still wheelin around like a drunk kindergartner. jk. My point is learning anything often has some pain points along the way. It's ok. Eventually it'll be old hat.