Problems with learning to program

Programming, for all ages and all languages.
Post Reply
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Problems with learning to program

Post by mac »

Hey, I took a little break from trying to program but I want to try to get back in. I guess that no matter if it's Python or more complex like C, I can't learn the skills to be a good programmer. Only walking around in circles. I'm told that I need something to sustain my interest. The problem is that my entire life, I developed all sorts of "special interests", but they never had the opportunity to grow into an awesome skill.

I wish I could have a more "normal" brain like most people do, that's able to think critically and have a mind of its own. I'm going nowhere in my life in general outside of computers. I just walk in the same space forever with no improvement. I don't know what is the problem with my mindset.


As for learning to program itself, I'll give you an idea of what's going on. Imagine opening "The C Book" (my uncle recommended this book for learning C) and always having to look at the back answers to the exercises in the first chapter.

I never "got great" at doing anything in my life. :(
User avatar
MichaelFarthing
Member
Member
Posts: 167
Joined: Thu Mar 10, 2016 7:35 am
Location: Lancaster, England, Disunited Kingdom

Re: Problems with learning to program

Post by MichaelFarthing »

Why not join a class or workshop group?

You might find the opportunity to talk about ideas with others quite helpful. Maybe, like me, you are a bit of a loner - but one of the advantages of a class is that the common interest makes socialising much easier and you may find people who can explain things in far better than a book can manage. The regular meetings would also provide you with a bit of an external discipline.

Good luck.
Lowl3v3l
Posts: 8
Joined: Mon Aug 29, 2016 12:33 pm
Libera.chat IRC: Lowl3v3l

Re: Problems with learning to program

Post by Lowl3v3l »

If you really have so many interests and are not just unmotivated then the thing that helps me is combining interests. For me, almost all typical programming tasks, e.g. websites etc are boring. So whenever i got my mind to "i want to learn language X better " or sth similar i find ways to satisfy other of my interests in the same time. So once i wrote a spellchecker that would specifically point out some orthographic and grammatical ( and even stylistic) errors that i caught myself doing over and over again in Perl ( which i didnt know before xD) just because i wanted to focus on a Paper. Or i do mathematical tasks ( i love math) specifically in a language ( take a look at project euler for example^^).
I found that for most people its more about finding the right fun task. If its fun you stay motivated^^
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Re: Problems with learning to program

Post by mac »

Indeed, I was considering taking an actual class.
User avatar
jojo
Member
Member
Posts: 138
Joined: Mon Apr 18, 2016 9:50 am
Libera.chat IRC: jojo
Location: New York New York

Re: Problems with learning to program

Post by jojo »

+1 on the idea of combining interests. Personally, my two biggest interests are computers (natch) and music. So I have a lot of side projects that involve the composition of the two.

One of the first ones I wrote was a really simple command line tool to help me memorize the conversion of note names to fret+string on a guitar neck better. Then I spent some time writing a bunch of silly little sketches that did some really basic digital synthesis things and dumped them to wav files. Right now I'm working on a kind of modular music synthesis package for noodling around with bleep-bloops.

That said, I feel like I've been a lot like you in a lot of ways. Personally, the biggest thing that I've had to realize in my life is that there's no substitute for doing. Whether it's trying to learn programming or working on fitness or cleaning the kitchen, regardless of what your emotions tell you you just have to try your best to remind yourself that nothing happens unless you do it. It's an emotional hurdle that's hard to overcome, and every one of us struggles with it every day, but the true challenge lies in, every day, making it an inch further along the road of mastering yourself. Of learning to realize that any of these negative emotions that may sway you, in the moment, from picking up K&R book every day and making it through ten problems, or putting on the workout tape, or getting your butt over to that dirty sink, are only ethereal and are the only thing standing between you and your goal.

I understand it. I'm working on it every day. When I got my first big boy corporate programming job six years back, I didn't realize that I would find a major motivational problem in being unmotivated to work on what I might feel are completely uninteresting projects and being surrounded by many similarly unmotivated people. But I'm working every day to remind myself of how good it feels to actually accomplish something in a workday and how being employed is a very, very nice privilege that I would like very much to keep. And it's a slow, arduous process, but every day I get a little better and a little better at actually making myself get some of that work done. And every time (though of course we all fall back at times, and that's okay), I can feel that positive feeling reinforcing itself.

A little better every day. Both of us. We're going to be proud of what we've accomplished.
ggodw000
Member
Member
Posts: 396
Joined: Wed Nov 18, 2015 3:04 pm
Location: San Jose San Francisco Bay Area
Contact:

Re: Problems with learning to program

Post by ggodw000 »

C is a lower level language therefore tend to be closely to an architecture. I'd recommend either studying and/or become familiar with the either or both of two dominant architecture: ARM or x86. Also if you learn assembler (albeit not commonly used today), it gives you much more insight into system internals and studying C will be a walk-in-the-park.
key takeaway after spending yrs on sw industry: big issue small because everyone jumps on it and fixes it. small issue is big since everyone ignores and it causes catastrophy later. #devilisinthedetails
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Re: Problems with learning to program

Post by mac »

ggodw000 wrote:C is a lower level language therefore tend to be closely to an architecture. I'd recommend either studying and/or become familiar with the either or both of two dominant architecture: ARM or x86. Also if you learn assembler (albeit not commonly used today), it gives you much more insight into system internals and studying C will be a walk-in-the-park.
Do you actually recommend such a bottom-up approach? Does it even matter at all if I do?
ggodw000
Member
Member
Posts: 396
Joined: Wed Nov 18, 2015 3:04 pm
Location: San Jose San Francisco Bay Area
Contact:

Re: Problems with learning to program

Post by ggodw000 »

C is a bit higher level language than assembly. Therefore it might not give a good insight on the system internals although it is damn close to.
As far as the architectures are concerned (either ARM or x86), you might not see much difference while programming in C albeit there could be some difference. If you do in assembly, the difference is drastic across architectures. What I mean by that is doing assembly in arm is very different than x86.

You can completely ignore the assembly and just do it in C, there is absolutely nothing wrong with. When I was in school I always wanted to go "deeper" into the internals of the system, at some point I ended up doing the analog and digital circuit work. But that was too much and my interest in hardware design quickly waned and main focus of interest was right at the twilight area where hardware meets software, thus assembler.

For you, your preference could be different, if you need to develop fast and see the result as soon as possible obviously learning assembly is not an ideal choice, however there could be a knowledge gap remains.

So moral of the story is really personal choice: i.e.
- do you explore the internals of the system and wants to inside and out. then yes, do an assembly.
- do you want fast result and quick development time, then go for C. For that matter even C is slower, may be python is choice.
key takeaway after spending yrs on sw industry: big issue small because everyone jumps on it and fixes it. small issue is big since everyone ignores and it causes catastrophy later. #devilisinthedetails
Post Reply