Hey λ I'm kinda stuck, I just turned twenty and I decided to take a look back at the progress I've made over the last year as a programmer The answer unfortunately is not that much, I understand a ton of languages at a basic level but I never get much further than that, I don't really get into the details of a language because once the novelty wears off I can't stick with it.
I was diagnosed with ADD as a kid, I don't medicate for it, and as a result of that I can't sit down and concentrate for a lengthy period of time unless I'm really interested in or passionate about something. It makes slogging through the more difficult portions of a programming textbook incredibly frustrating, because try as I might once I lose interest I don't retain any information from what I'm reading.
I know attention issues are common among the enthusiast community so I'd like to know how you guys deal with it.
I can "program" the same way a kid can build a house out of legos, but I struggle to become competent with a language before I lose focus
I've had flings with almost a dozen languages, but I still don't feel comfortable calling myself a programmer, because I really couldn't do anything useful in any of them.
I mean finding a really interesting text or tutorial would help, but what I really need is a more effective strategy for cultivating and maintaining my attention, often enough to become a decent programmer, I just feel so stuck
Do what I did growing up, get yourself an old machine that cannot even go on the internet at all and just focus on making it do things.
I learned how to program using Commodore 64 BASIC and DOS BASIC on a 286 of all things. Not a practical language by modern standards, but at least you will learn without too much distraction. You could also learn 6502 assembly on one of many machines that have a 6502 on board, provided you can find one in decent shape. I currently mess around with C programming on a Pentium 1 machine running FreeDOS. It can go online, but what it can do while online is rather limited so the distraction is minimal other than all the old games I have.
Key thing really is any machine with limited capability without internet access (use books for reference materials instead) to eliminate distractions and give you a reason to keep going.
There is little motivation in programming for the sake of programming if you have no goal and do not enjoy it. If you can't enjoy engineering/building process, set some goal. Is there some software you need? some field of interest? there is always something that was never done before - you just need to figure out what you like.
Hi guys, I'm new here, don't throw rocks on my at least for now. >>set some goal. Is there some software you need? some field of interest? there is always something that was never done before - you just need to figure out what you like.
The problem, is that this goal should not be very big, I mean, it should something that you can do in one, two, or maybe three days. If it needs a lot of dedication, at the end you will get tired of it. But if you only are capable of do little things, you will end up despising yourself.
Personally, I find out that getting a job related to programming, with a kind boss (if possible) is the better way to get concentrated. Not because you are happy with it, but because you have some hours each day dedicated to some task. In this time you can not do any other thing than your job.
In my personal case, I lose interest because I am not able to reserve some time to some task, so when I start my new ultra cool project, the next day, I will think in a different new ultra cool project, and the old one will be abandoned. Also, with computer games, anime, and that sort of things, when I find something too difficult, or I think that tomorrow I will be more concentrated and I will be able to solve that difficult thing, I end up wasting all the day with computer games, waiting for tomorrow. So, my current status is: searching for someone else cool project where I could help without having to waste one week to learn how their project works (mainly new projects).
>>20642 Try writing a textboard. You can get something basically usable in a very short time, provided you have a programming language capable of writing webapps (ie any of them), and know a little SQL.
>>20633 Try focusing on languages expanded from simple semantics, like Prolog or Forth, and expand them further.
With that, try doing something simple, like automating something you do often. This is one of the best ways to start. >I know attention issues are common among the enthusiast community so I'd like to know how you guys deal with it. >I mean finding a really interesting text or tutorial would help, but what I really need is a more effective strategy for cultivating and maintaining my attention, often enough to become a decent programmer, I just feel so stuck I don't program much either, but consider myself proficient because I've obsessed over learning the details of several languages and do. I try to focus my effort on fewer long-term projects that I reason about for months before programming anything and then eventually implement them.
So, I'm in the camp that enjoys thinking about programming more than actually programming, most of the time.
>>20642 Allocate a small time for programming every day. Set small tasks that seem interesting. Don't start a "cool new project", just a task. Don't get too worked up about whether it's a big thing or a small thing, just get coding. On a related note, accept your limitations and learn to work with them, not against them. If you set up a project, let it be a small enough one that you can get the basic structure of it in a few steps. Do one step each programming session. A clear and definite goal that is small enough and a chunk of your time exclusively dedicated to hacking at it, just start doing it, maybe if it helps you do some ritual beforehand (like, brew some tea, idk).
I'm in exactly the same situation -- early 20's, intermediate programmer, diagnosed ADD. I find what's most helpful is to keep 1 or 2 projects around. Each project should ideally have some novel benefit, but shouldn't be way out there in difficulty (like, a booru client is good but not a speech recognition engine).
I tend to bounce back and forth between the few projects I have laying around, but I always end up working on them from time to time. I find that this slowly pushes my understanding of various abstractions and patterns forward. But YMMV; I'm an electrical engineering major and don't focus on CS stuff wholesale. It's enough for me to develop programming skills part time.
As for general focus, I find listening to repetitive music helps keep in the flow. Acid techno is particularly good. And if you don't have an objection to it I would try to get medication if you can. If you're just trying to fix your focus, Ritalin doesn't seem to build a tolerance and it works very well for me in that capacity.
>>20655 Speaking of doing programming every day, the Advent of Code (adventofcode.com) is upon us, and so a new programming challenge will be put up on the site every day through the month of December.