Page 1 of 2

Should I become a programmer

Posted: Mon Jun 27, 2022 8:09 am
by douglasjchan
So I've been watching this Terry A Davis guy daily who is known for his TempleOS operating system for about a year now and I was wondering if I myself should become a programmer but I'm not sure if I'd be good enough since I have ADHD and I'm terrible at things like math (I'm still in highschool but I'm planning to go to a vocational school this year).

Re: Should I become a programmer

Posted: Sat Jul 16, 2022 9:52 am
by shokwave
Operating system development is one of the hardest types of programming there is. Dip your toe in the water with maybe some web design (javascript) or some useful macros (VBA) in office products.If you like it you can dive deeper. ADHD can have positive effects for programming, and there are medication treatments that others I have known with it have had great success with. Or if you enjoy C/C++, maybe start with LFS (linuxfromscratch.org). Its not the nitty gritty, but automating it can be a fun task, and gives you experience setting up software environments, which it seems like is half the battle sometimes.

Just my 2c

Re: Should I become a programmer

Posted: Tue Jul 26, 2022 10:41 pm
by nullplan
douglasjchan wrote:So I've been watching this Terry A Davis guy daily who is known for his TempleOS operating system for about a year now and I was wondering if I myself should become a programmer but I'm not sure if I'd be good enough since I have ADHD and I'm terrible at things like math (I'm still in highschool but I'm planning to go to a vocational school this year).
Math is merely a small part of computer science. I second the suggestion to just try it out. Ability to program is, for the most part, innate. So try your hand at something simple and see if you have any aptitude for it. If so, continue to pursue it. It is good work, and you are unlikely to go hungry a day in your life. If not, to the best of my knowledge, training is unlikely to help.

And don't worry about whatever mental illness has been written on the sticky note on your forehead. Properly managed, most of them present little issue. Plus, I know tons of people with difficulty concentrating, that are still damn fine programmers.

Re: Should I become a programmer

Posted: Wed Jul 27, 2022 2:23 pm
by nexos
I agree with nullplan. Even if you have a hard time paying attention, you can still be a very good programmer.

My recommendation would be to take breaks while programming. This is good for anybody even if they can pay attention for 6 hours straight; it gives your brain time to rest. I found this helped me personally pay attention a lot better.

Re: Should I become a programmer

Posted: Thu Jul 28, 2022 6:40 am
by Barry
If you're worried about your ADHD holding you back, consider that Terry Davis suffered from extreme schizophrenia and probably quite a few other things, yet he made a fairly impressive OS, programming language, and range of libraries. As everyone else has said, just try programming and see if it's your thing. If it just clicks with you, then go for it. Just because you're still in high school doesn't mean you can't do great work. Only way to find out is to try.

Re: Should I become a programmer

Posted: Thu Jul 28, 2022 8:11 am
by lazermime
Terry Davis has recently become something of a Youtube and Reddit sensation. I know he has always has notoriety due to his excentricities and programming ability, but I have definitely noticed an uptick in popularity surrounding him. It seems like this is another case of Youtube culture grabbing onto the sad story of a mental health crisis.

That being said, programmers are not all like Terry Davis, and not many make programs like his. If you're interested in programming, I would recommend the same as shokwave and nullplan. Both are great suggestions, and I would definitely recommend a top-down approach to start with. There is a lot to learn with programming and the higher-level languages teach some about execution flow, conditions, accessing and manipulating data, and prototyping. Avoid popular libraries and frameworks, just work on rolling your own solutions: it helps learn and avoid unnecessary/bloated complexity while you learn.

I started with JavaScript as a teenager and then moved to Java, then C/C++, then asm for OSDev. Ironically, I mostly write in Python or Bash for work. I'm not saying this is the pattern to follow, nor am I suggesting it will suit your attentive and mental needs, but it worked for me.

Re: Should I become a programmer

Posted: Thu Aug 04, 2022 12:59 am
by Solar
douglasjchan wrote:...but I'm not sure if I'd be good enough since I have ADHD and I'm terrible at things like math (I'm still in highschool but I'm planning to go to a vocational school this year).
If I were a kid today, I'd be diagnosed with ADHD myself. Back in the 70's / 80's, not so much. I was merely "difficult". 8)

While my grades were pretty good initially, I basically bugged out in upper school and opted out of math entirely. Math isn't really the point; you can go through a whole life of professional programming without having to solve a math problem (beyond basic arithmetics).[1]

However, two things that must come easy to you are logic and English. Some enthusiasm to solve problems and seeing things through is also necessary.

The problem will be to get some kind of formal qualification in the field. Somewhat unfortunately (in my eyes), jobs for programmers / software developers are usually requiring a degree in Computer Science, which I consider about as misguided as the math part. You see, Computer Science is rather heavy on math, while at the same time usually lacking in practical issues like "how to write good code" or "how to debug". (There are courses that do include the latter, but a still-much-too-large number of courses don't.)

There are alternatives to a full-blown CS Master, though. There are polys / technical colleges etc. offering a combined vocational training and degree program (I hope this made it through the language barrier; "duales Studium" in German). These programs are less heavy on the theory and more practical in approach, and result in some kind of qualified certification. Less than a university degree, but usually enough to get you a first job -- and after that, your formal education tends to matter rather little compared to your actual business experience.

Just... if you want to do actual programming, I have to disagree with some of the other replies here. Stay away from Javascript and web development. You will get stuck in a rather unhappy corner of the business. While it pains my C++ heart to say this, but Java, C#, and Python are where it's at.

---

[1] The one time I faced hard math in my 20+ years on the job, it was a formula handed to me by the business department, and my assignment was to put that into code. My contribution was to realize that a naive implementation of the formula would give flawed results due to the limited precision of binary floating point arithmetics. When I pointed this out to the business department, they passed the paper back to the actual mathematicians to come up with a better formula. :)

Re: Should I become a programmer

Posted: Thu Aug 04, 2022 1:51 am
by iansjack
Solar wrote:While it pains my C++ heart to say this, but Java, C#, and Python are where it's at.
I'd add Rust to your list, and - possibly - Swift.

Re: Should I become a programmer

Posted: Thu Aug 04, 2022 7:11 am
by nullplan
Solar wrote:Just... if you want to do actual programming, I have to disagree with some of the other replies here. Stay away from Javascript and web development. You will get stuck in a rather unhappy corner of the business. While it pains my C++ heart to say this, but Java, C#, and Python are where it's at.
Unless you go write embedded software for machine builders, then it is usually C. And C89 at that.

Re: Should I become a programmer

Posted: Fri Aug 05, 2022 1:26 am
by Solar
I wanted to point at where the vast majority of "real" programming is being done, 80-20 style and speciality fields nonwithstanding.

Re: Should I become a programmer

Posted: Sat Aug 06, 2022 1:59 pm
by eekee
I'm pretty sure I have ADHD. Focusing can be impossible, but at other times, I'm hyperfocused. This is characteristic of the disease, it's not just me. My favourite personal example is from back in 2010-ish, when I set out to write a shell-script web server with support for virtual hosts, dynamic content, HTTP PUT, and the CGI standard. I quit IRC so I could concentrate, and did nothing but eat sleep and code for 5 weeks. I nearly finished it, just getting one little detail wrong before the poor ergonomics of my desk and perhaps the lack of exercise affected me to the point where I had to quit.

Sadly, that's my only notable success story. I often hyperfocus on games, but with code the problem is that I have to look up something, then to understand that I have to look up something else, then I have to look up another thing, and this or the next level is always enough to break my focus. (With the help of inetd and similar tools, HTTP 1.0 is very simple.) However, this depth limitation may be due to some other mental health issue, quite possibly a high exposure to lead in childhood. If it is intrinsic to ADHD, a different approach to researching for the task may work around it, but I have other problems with that.

When it comes to operating systems specifically, my depth limitation becomes a problem at the design phase. I can't keep all the things I want to achieve in my head at the same time, and I end up with conflicts. However, if I better understood ways to implement each part of what I want to achieve, I might be able to better imagine the whole. I haven't really looked at this issue for a couple of years.

Re: Should I become a programmer

Posted: Fri Aug 12, 2022 8:05 am
by rdos
Most of today's programming tasks area boring and non-inspiring, so I would NOT become a programmer if I needed to select a career today. I still enjoy OS-programming, but very few people can succeed in that field, so I don't feel there are any interesting positions in the field.

I think being neurodiverse (ADHD, autistic) is a requirement for becoming a good programmer, but as part of that package also typically comes dislike for large project with lots of social exchange. I'm on the autism spectrum, and I don't enjoy to work on large software projects with many people involved.

Re: Should I become a programmer

Posted: Fri Aug 12, 2022 9:04 am
by nexos
eekee wrote:This is characteristic of the disease,
I don't know if I'd call ADHD a "disease". It isn't something that "needs to be cured", rather, it simply indicates a unique brain that brings its own set of challenges to the table (difficulty concentrating), but does offer advantages (such as the ability to intensely focus on a particular subject). Referring to it as a disease could be demoralizing to some people.

Same goes for other "neurodevelopmental disorders". That really is just a catchall for people who are really "neurodiverse". I'm not sure if "disorder" is really even the right term here, rather, "syndrome" (i.e., a name for a set of signs and symptoms) seems more appropiate.
rdos wrote:I think being neurodiverse (ADHD, autistic) is a requirement for becoming a good programmer, but as part of that package also typically comes dislike for large project with lots of social exchange.
That is exactly my point. Some things come easier (e.g., intellectual abilities) while some things come harder (e.g., social interaction). Of course, "autism" is so diverse that what symptoms one person with it displays could be completely different from another person.

I hope we aren't diverging too off topic here :)

And no, I'm not trying to be "the PC police"

Re: Should I become a programmer

Posted: Wed Aug 17, 2022 2:53 am
by Solar
rdos wrote:Most of today's programming tasks area boring and non-inspiring
That, I would very much not agree with. I think the field has become more interesting over the last, oh, 30 years or so, simply because there is so much more that computers do today. Ad hoc I could not think of a single subdiscipline that has actually "gone away" (although some have certainly changed very much). Of course the number of people working in the field has increased, so there is much more competition for the really interesting positions. Also, the knowledge on the subdisciplines has increased as well, so you need to have more up-front knowledge to be a viable candidate. Back in the day, very few people knew anything about e.g. OS development, so being a capable programmer was enough of a qualification in its own right. Today, you need to be able to show quite some up-front qualification to even dream of a position as OS programmer.

Over the 22 years of my professional career, I've worked on software that collected stock market data and used that to avoid insider trades and money laundering, and to calculate the risk a bank held. That was interesting mostly because the huge amounts of data involved and the rigorous testing and system security regimens.

Then I've worked on software that analyzed name and address data, auto-correcting misspelled or outdated addresses, faciliating cross-compares of distinct data sets for duplicates etc.; that was interesting because it involved parsers / interpreters for several domain-specific languages, and taught me a lot about Unicode as well as specifics of various locales with regards to names and addresses.

Now I am working as Software Quality Engineer on software that helps with analyzing and optimizing production lines to even out workloads, allow solid predictions on when orders are processed, and generally make administrating a production line easier for everyone involved. This involves development and maintenance of automated testing as well as manual tests, training other developers in writing tests (and, by extension, testable code), and being the contact person for anything QA related (which puts me in the position to really make a difference for the company).

Things didn't happen as I thought they would, and some assignments were "all the work and very little fun", but I really cannot complain that my job had ever been "boring and uninspiring". I learned a lot, worked with people both pleasant and not-so-much, made some friends and one or two enemies. It's been quite the voyage, and I certainly hope I can sail this ship till the end.

My message? If you don't fixate on one thing that your job has to be to make you happy (like "working on a specific operating system's kernel"), there is so much variety in this job (as in most others) that can be quite interesting if you embrace it. Don't let yourself be discouraged.

Re: Should I become a programmer

Posted: Wed Aug 17, 2022 3:41 am
by rdos
Well, I can make that kind of remarks because I will soon retire, and until then, I'm pretty sure I can continue to work on my own OS kernel, and that I won't need to learn (more) about Windows or Linux development. I certainly will not need to do web-apps, Java code or anything like that. I might do some programming tasks in my spare time because it is fun, but I certainly will not involve with Linux or Windows, and I don't really need to as I can do things with RDOS more easily. I will also create more web quizzes and similar, but that's ok to get some data for analysis. I will certainly not work on new flat kernels for new processors (even if it is OS dev), as I view this as "yet another Posix/Linux clone", and I only feel contempt for Posix which is a poor design of the 70s . I feel I've already reached my goal of having designed an operating system that can run on real hardware that has NO external components, and that I can call entirely mine. The fact that it has also been deployed on 1000s of installations is a bonus, but the main thing is to have designed something that is independent on Microsoft & Linux.

I can very well see that younger people might make other decisions in this area. I'd rather would have worked on hardware development, but these jobs were few and hard-to-get (even if I had the relevant MSc), and so I ended up with software instead.

Besides, I got a job offer some 10-15 years ago to work on the Linux kernel based on my work on RDOS. I almost went for it, but withdrew before it was final. Today, I feel this was the right decision. At that time, RDOS was not yet used in commercial installations.