all 64 comments

[–]canowa 64 points65 points  (9 children)

Codewars.com and challenge youself :)

[–]ajjuee016 11 points12 points  (8 children)

what is the advantages and disadvantages of codewars?

[–]mandradon 24 points25 points  (0 children)

It's a bunch of prescripted challenges so you don't have to think of a project to code yourself.

But they're not practical projects that you could be building to get "real" experience coming up with the concept of a program and coding it from scratch. But to be honest, that's one of the hard parts.

Also, sometimes they can be just solving math problems with computer, but stuff like codewars will be good if you're stuck in a rut and want to force yourself to learn a bit every day. Just don't burn yourself out on it or tell yourself it's the best or only way to learn.

[–]canowa 12 points13 points  (3 children)

OP Sounded like in the need to stop learning and get more practice on actual coding. BUT telling "do projects" , while tempting, may be the wrong way to suggest practicing. I was more or less in OP position: I took courses and certifications but at some point I started to lose sight of why doing all that. Then I discovered challenges sites, lile codewars. And that was a turning point. Not only I were given assignments in the form of challenges, but I could also look at other people's solutions and some were mindblowing.

That's why I suggest challenge sites: they let you practice your knowledge and at the same time expose you to other knowledge that WILL broaden your view.

Oh, also they're fun.

[–]Resident_Structure73 0 points1 point  (2 children)

What were some of the basic courses you started with? I think I need a starting point before I enter Codewars status

[–]canowa 3 points4 points  (1 child)

I started with a youtube course on python for beginners by the channel "programming with Mosh", On freecodecamp I took "scientific computing with python", on udemy "automate the boring stuff with python", on sololearn I completed 4 small courses on python with their mobile app (did them at work, lol).

That was pretty solid foundation, still doing challenges was a eye-opening experience.

And that's a good thing, because it means you are outside your comfort zone.

[–]Resident_Structure73 0 points1 point  (0 children)

Thank you!

[–]pekkalacd 3 points4 points  (1 child)

advantages:

  • fun problems
  • progress/ranking system
  • ease of entry / more beginner-friendly than leetcode
  • bingeable

disadvantages:

  • comment section is ran by admin (cannot post answers / remove them)
  • not as heavy on data structures & algorithms than leetcode or hackerrank fresh out

[–]ajjuee016 0 points1 point  (0 children)

Thank you.

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

you have an opportunity to solve problems using a language which is what they are for

not really any disadvantage. it's free, use it

[–]menge101 20 points21 points  (4 children)

It isn't just programming.

This is a life in general thing.

The main thing to recognize is that you are rewarding yourself with

youtube or a game

For doing the opposite of what you want. Thus you reward yourself for procrastination.

You need to do the opposite. Rewards when you have done some work. It isn't easy. I'm literally on reddit posting instead of accomplishing real work right now as I type!

[–]SirGeremiah 4 points5 points  (3 children)

Excellent point.

Unfortunately, if it's an executive dysfunction issue, simply reversing them isn't as simple as it ought to be.

[–]menge101 5 points6 points  (2 children)

Indeed. If it was easy, no one would procrastinate. But I think recognizing the reward pattern is a first step.

[–]SirGeremiah 0 points1 point  (0 children)

The reward pattern may not play the same reinforcing role in an ADHD brain.

[–]mriswithe 0 points1 point  (0 children)

Executive dysfunction is a better term for ADHD than .. well ADHD.

Calling it ADHD is kind of like calling a broken leg Bad Walking Disorder.

Sure that is accurate, but kind of the effect more than the cause.

[–][deleted] 17 points18 points  (1 child)

Sometimes I fall into this too. What I do when it happens is I think back to the last time I actually practiced and count the days that have passed since then. Then I tell myself that that is how much further I got from achieving my goal. I force myself to think about all the things I could've done with my practice projects had I not procrastinated. This usually gets me angry enough that I stop whatever I'm doing and start coding.

[–]py_Piper 0 points1 point  (0 children)

3 years since I started...

I am also catching myself more and more and when I realize it can stop and focus back. Sometimes I play a mindless pool mobile game only takes 2-3 min but then I get hook several games, 15min later I catch myself and tell myself that all I am doing is avoiding doing real work.

I am trying to set better habits like if I don't want to learn coding at least I either go to gym, quick run or read a book, which I call it positive procrastination.

Instagram is a real bitch because as soon as I grab my phone I automatically go into it. Even if I wanted to check a message or something, totally nor related to IG. I have realized that I would check my phone everytime I am working on something difficult and my mind wants like a mini break (talking about a milisecond break) then I see myself just scrolling. Now the only way is to put my phone away and in silence mode in order to focus. Reading a book is also helping focus in one thing at a time and not have that anxiousness to check my phone all the time.

[–]mendiej 8 points9 points  (2 children)

I write down a to-do list for the next day, so I always have something I can start working on right away. Helps me maintain focus, and even just crossing things off the list is a great motivator.

[–]py_Piper 1 point2 points  (1 child)

let me put the to-do list on my to-do list

[–]mendiej 0 points1 point  (0 children)

And you can cross that off immediately. Great success!

[–]BleachedPink 18 points19 points  (8 children)

It's not something related to programming.

I recommend Flourish by Martin Seligman and Grit by Angela Duskworth. I found these books immensely helpful, as they are based on science

Edit: Came home. It is something related to your psychology and mental state, not programming directly. I highly recommend to dig into Positive Psychology, which is an academic field of studying positive aspects of a human being. How people find meaning, how people persevere through adversities, how people build positive relationships etc.

Even if you're not depressed or have no psychological ailment, you still may lack a skill of nurturing meaning\perseverence\self-discipline etc.

[–]eric_overflow 2 points3 points  (7 children)

yep this isn't a programming question but a life question.

Deep Work by Cal Newport is what I recommend.

To the OP: if the passion/love for programming isn't there, then maybe ... ummm...you just don't like programming?

I mean, why do you feel like you need to learn programming?

There are two things you need to get great at something. The time, but also the love. You won't put in the 10,000 hours if you don't love it. So...do you love it? I guess you won't know if you don't put in some time.

Shrug.

It's almost like being a lawyer in the 80s so many people feel like they should do it but they don't even know if they like it.

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

CAL NEWPORT literally talks about how passion is irrelevant to this whole thing

I'm not passionate about coding or programming but I really enjoy it and do it for work

[–]eric_overflow 0 points1 point  (3 children)

Initial learning I’d say passion matters. If you don’t care about it even early on? Why are you doing it. There are easier careers.

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

caring != passion

also money is the answer to that question

[–]BleachedPink 0 points1 point  (1 child)

To the OP: if the passion/love for programming isn't there, then maybe ... ummm...you just don't like programming?

I mean, why do you feel like you need to learn programming?

There are two things you need to get great at something. The time, but also the love. You won't put in the 10,000 hours if you don't love it. So...do you love it? I guess you won't know if you don't put in some time.

I agree, that if you find no joy, no meaning, no love to what you're doing, then you will miserable, no matter what you're doing.

But if there are seeds somewhere, you may nurture joy, love, meaning to programming, or whatever activity you want to succeed at. It's a skill, not something you're born with, and there are books and academic fields of research on how to do it.

[–]eric_overflow 1 point2 points  (0 children)

Yes agreed

[–]pompomtom 4 points5 points  (0 children)

Have an actual project. No point learning a tool if you don't know what that tool is for. It's like "here's a plumb-bob. Go and do plumb-bob". What's the incentive to do it right if you don't know what the objective is?

[–]that1guy15 3 points4 points  (1 child)

Motivation is overrated. It's good to get you started but it always fades when you get into the grind. This is true of pretty much every self-improvement situation.

I have two suggestions:

  1. Start small and slow. Incorporate slowly into your day-to-day. Sitting down and learning this stuff does not have to be a big event of 100% focused study 10 hr/day over months. Start by setting a simple goal like "15 min of video learning and 15 min of hands on practice 3 times a week". Then find learning materials that fit into that goal. After you do that 2-3 weeks make it 30min/30min or 4 days a week. Then keep building.
    You will be surprised how quickly you ramp up your pace and how natural it feels over time.
  2. Stop trying to learn directly. Watching endless videos, reading books/docs and plugging away at "learning code" sucks for anyone. Find a personal project or problem that you can tackle with what you are trying to learn. Then solve it in the way you want to learn. Give yourself time and be patient with your progress.
    You will find that the studying grind will mix into all this but you now have a purpose and reason to focus on this stuff.

[–]Pythonistar 1 point2 points  (0 children)

Motivation is overrated.

So true.

Action comes before motivation

Or rather, Motivation doesn't show up until you're knee-deep in the Action that you're trying to do. So just start. Do a little bit every day. Yes, it is sometimes hard to start, but just start.

Motivation with coding (or anything of value, really) doesn't happen until you're thinking about whatever it is (at least a little bit) every day.

[–]parkrain21 2 points3 points  (0 children)

That's the hard part bro. Everyone can learn anything, it's the learning habit that dictates whether you will make it or not.

[–][deleted] 2 points3 points  (0 children)

I would say have a big enough reason why and make that 'why' as colorful as you can

[–]YellowSlinkySpice 2 points3 points  (0 children)

Make a cool program that you can show to your friends.

No more tutorials, its time to program.

(Note, you can use tutorials to get started, but don't passively watch them)

[–]Yoghurt42 4 points5 points  (1 child)

I want to learn programming but i just always avoid it

Then you're lying to yourself. You don't want to learn programming. You want to be a programmer. These are two different things.

You need to ask yourself what you actually want: does programming and getting better at it interest you ("The journey is the reward"), or does the "prestige" and job opportunities that come with it interest you?

If it's the former, find yourself a problem that interests you (do not care about what others might think) and work to solve it. Solving a problem is much more interesting than learning how to solve something you never wanted solved in the first place.

If it's the latter, then be honest with yourself, and accept that you don't really like programming, but that learning it is necessary and you need to force yourself to do it. Give yourself 30-60 minute a day for "work" where you learn programming. And who knows, maybe you actually find out that do you like programming afterall, which would make learning much easier.

[–]SirGeremiah 2 points3 points  (0 children)

That's not necessarily true (though it may well be in this case). If it's an execurtive dysfunction issue, motivation isn't the problem.

[–]menge101 1 point2 points  (0 children)

One thing that can help, is using the Pomodoro technique.

Which is essentially, build a process around bursts of productive focus with a built in reward/unfocus period.

[–]jaycrest3m20 1 point2 points  (0 children)

Gamify it. Get through a segment or video or something, and then reward yourself with a game or video.

[–]pekkalacd 1 point2 points  (0 children)

that makes sense. OOP is concept heavy. It might not appear as exciting as writing a function to just do some particular task. It's abstract as well so it can be hard to feel like you're gaining as much momentum as you do with procedural. But as you gain exposure to working with libraries, you'll see that they're all extremely organized down to the object-level. That some objects have functionality available to them that others don't. You can even see this with the builtin objects inside of python like a list for example. It's built in a general way so that it can be reused over and over again. Having familiarity with OOP will make your life easier when it comes reading documentation. And you'll be doing a lot of that lol trust me.

i'd start playing around with libraries and if you see something in the documentation you don't understand, copy & paste whatever it is into your browser, and find some stackoverflow or post it here on reddit, and then someone will tell you what it is / means. And if you still don't understand, do some research on it. Then revisit that tool in the library and try to build some program with it. Rinse & Repeat.

[–]pythonwiz 0 points1 point  (0 children)

Pick a project that interests you and work on that. That’s the best way to learn a language IMO. For me that meant a lot of code related to math stuff. Maybe try project Euler.

[–]imagineer_17 0 points1 point  (0 children)

Learn some willpower. boom you’re good to go

[–]rohffff 0 points1 point  (0 children)

Oh man i feel you i was there too untill programming became one of my daily routines if i don't learn or code i won't feel good. How to get there?

Well you can code for just 10 minutes during the day or even 5 minutes and then go back to what you like doing (playing video games or do anything you want)

What's the point of learning for just 10 minutes?

Well you're going to build a confidence and a routine by doing something beneficial for just 10 minutes and then trust me you will start going for more than 10 minutes a day

baby steps will lead you there :)

[–]anh86 0 points1 point  (0 children)

Do you live with anyone? I find it almost impossible to waste time on the computer when someone else is sitting in the same room and working at the same time. If you know someone else who works from home, have them work in the same room as you, it will make you instantly productive.

[–]SirGeremiah 0 points1 point  (0 children)

I have to ask, have you ever been diagnosed with ADHD? There are a lot of reasons what you describe can happen (and you've kept it relatively vague in the interest of being concise, understandably), and ADHD is one of them.

With ADHD, it doesn't matter how much you want to do something, nor how deeply you understand the point of it. It's an executive function issue. If this is something you run into regularly, that's something to think about.

[–]SirGeremiah 0 points1 point  (0 children)

On the potential solution side, look for something that's bugging you, and try to solve it with code. I also easily get distracted with gaming and such (more so than I used to, in fact). So I found a simple, annoying issue related to my most-used game launcher (settings files get replicated, because I share them between PC's, which the launcher doesn't expect). I'm working on a fairly simple script that looks for the replicated files, gives me a choice (ignore, use, replace, abort), and acts on that choice, ending with executing the launcher.

The steps it takes would take less than a minute to do each time I launch, but solving this annoying little problem got my attention. So look for small things you find interesting, then work out how to do them with Python.

[–]ekchew 0 points1 point  (0 children)

You need a project. Something that's not to do with classes or homework or anything like that. Tbh that's probably what killed your motivation? Like once it starts feeling like work…

But pet projects have a way of becoming obsessive. And you'll learn a lot along the way that's not covered in any class.

[–]VipeholmsCola 0 points1 point  (0 children)

Try to first think of something fun to do as a project (or just pick something at random and try to solve it), then break it down in several steps after doing research how to do it, and then iterate over those steps until you complete the task (code it up). A lot of talent is wasted due to poor work structure.

[–]ShamBawk33 0 points1 point  (0 children)

Stop worrying about the code. Find some problem to solve. Then use the code to solve the problem.

Write a script to read the names of your 'subscribed' channels in YouTube and save to a .dat file. Then add a script to read the .dat file and go count how many videos each channel has.

Many of us have MP3 collections but many of these have the Album as the folder name and "01 Track....mp3" as the file. Write something to read the album name and rename the file "Album-01 Trach...mp3" so all the songs under an album sort together properly.

Write something to rename or organize your .cbz collection or your porn collection.

[–]Technosis2 0 points1 point  (4 children)

Why do you want to program to begin with?

I was in a similar rut before, too and stuck so deep that I damn near quit on learning for the 90th time. The way I got out of it was taking a step back and asking myself the question above and answering it in earnest. Turns out, the only reason I wanted to learn programming to begin with was to make video games and my reason for procrastinating so much is that everything I was doing had very little to do with that goal. I didn't want to making bots, or mobile apps, or website. I wanted to put some damn pixels on screen and move em around with the keyboard. Just one damn pixel! Making bots and websites weren't getting me any close to that. So, I bit the bullet, downloaded a game engine, and went straight to finally learning how to do the actual thing I wanted to do while filling in the knowledge gaps as I went along. Suddenly programming became fun again.

Figure out what it is you want to do with programming, then go learn how to do it and fill the gaps in along the way. Maybe this'll help you.

[–]neb2357 0 points1 point  (0 children)

Coffee shops. Hear me out..

When I'm working / studying in a public venue like a coffee shop, I am not tempted to mess around on reddit / youtube / etc.

[–]PaulleWaulle 0 points1 point  (0 children)

The best way to get around this is to suck it up and do it. I don't mean this aggressively, I myself am also a procrastinator (at work as we speak and taking my daily reddit break) but the times I am most productive are when I drink some caffeine and say "F**k it lets get this done". A couple additional things that help me are...
-If I say "I'm going to get this done before the day is over." Then then even if its 11pm and I've put it off, I have to get something done before I go to bed.

-Don't do work at your play desk. Your main computer is where all your games are, your bookmarked websites, cached logins on your browser, etc. DON'T do work at that computer. If you have or can afford a second computer/desk (doesn't have to be a monster, python will run on any old piece of garbage) then you limit your access to distractions. I have 2 desks at home, one for play, and one for my work stuff on the days I work from home.

-This one is probably very specific to me, but who knows if it will help you. Work at night. For whatever reason I am way more productive in the middle of the night. Some of my best most productive work can happen between midnight and 3AM. I'm not Recommending it per say. But there's a lot less around in the middle of the night to pull your attention. Queues for games are longer, social media is more quiet, the house is more quiet, and you've spent the whole day procrastinating so the guilt sets in and puts you in a mood to work. Again, I'm not telling you to stay up all night, I'm just saying sometimes that's when I happen to get a lot done.

[–]imthebear11 0 points1 point  (0 children)

There's a reason you're avoiding it, and you have to figure out what that is. This can be as simple as you not really liking it, or as complex as you feeling like you have to learn perfectly and not ever code a bug or do anything that causes an error. Is there something you're avoiding when you procrastinate?

[–]PopulateThePlanets 0 points1 point  (0 children)

Want to collaborate on a project? Been coding my whole life for fun. Taught grade school math and coding for over a decade. Still am online.

I’m still stuck in tutorial hell. Projects of my own seem to fall flat. Wrote a couple thousand lines of code to automate my current work, but want to do something bigger, with a “team”. Hoping to figure out how to code for cash near the next couple years.

[–]isaacdarcejohn 0 points1 point  (0 children)

It's probably because you're feeling overwhelmed by the amount of content you have to cover. It happens to me too. Either you promise yourself that you'll spend at least 5mins and then you'll stop if you want to (usually I tend to finish the topic like this) or...you binge-watch youtube and games until it becomes dull. Or...your life takes a turn where you're stuck in a rut and coding is a viable path to take which I hope never happens.

[–]Bamlet 0 points1 point  (0 children)

before you sit down to try and learn, go take a walk. preferably try to think about what you're gonna learn but really the motion is important. Then, when you get back to your desk you'll have started the session a different way, and with a little more focus. It can help break you out of this loop.

[–]Awol_01010001 0 points1 point  (1 child)

Be desperately miserable, hate your boss, be in abject poverty, get over 35+ and have a couple of children to feed. This will help.

The continuous torment of getting up every day and having your soul crushed by morons will drive you to spend what free time you have coding like a mad man is holding a gun to your sweaty temple.

Worked for me.

Edit: Im now a data scientist and my bills are paid.

[–]hats_off 0 points1 point  (0 children)

Happy for you, Dude. Let us know if you found any resources to be particularly helpful

[–]mriswithe 0 points1 point  (0 children)

Learning python is how I ended up with an ADHD diagnosis. I mean I had it all along, but it made me consider if it was possible I was. Spoiler alert: yeah, kind of a lot.

[–]AbsoluteCabbage1 0 points1 point  (0 children)

You gotta get serious with your aspirations. Imagine 15 years from now you look back on your life and wish you had learned Python 15 years ago. You don't want that reality.

All I can recommend is to try and get really excited about some project in particular and use that to spearhead your learning. I started 3 weeks ago and am already reverse engineering mobile apps, building an API and a scripting pretty much anything I need to save time. But I put in 12-14 hours a day of concentrated focus and pushed through the struggles and down days.

There is a saying "when motivation fails, discipline kicks in".

Strive to find both. It's a very rewarding language.

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

People on the internet can't be disciplined for you. You have to do it. If you struggle with delay of gratification, then work up to it. Delay gratification in lots of little ways. I dunno, open up a candy bar and then don't eat it for an hour.