Cought between programming and my mind

Here I want to write something about my mental disorder and how this doesn't hinder me from being engaging in my hobby, programming.

When I was a young guy, I lived in a small village in rural. Internet was not available, and I hadn't access to a library at a university. All my buddies were only interested in playing computer games, no one was interested in programming.
But I was fascinated by the games there I shared with my friends. I asked me, how these games would be made. But I didn't knew, where I could learn some programming techniques. At school I was bad, I had some difficulties at memorizing most of the stuff that the teachers wanted to cramming in my head, especial I failed in learning foreign languages.
After I left school, I took an apprenticeship in communication electronics, and it was a delighting to me. I was enjoyed at chasing errors at electronic devices, building amps and such stuff. But most fun I had at programming in assembly language at a training device (a microcontroller with Intel8080, A/D converters and some LED. But I struggled again with learning stuff, and so I earned at the end only a bad diploma.

After I had finished my apprenticeship, I decided to work for earning some money. But I suffered at lack of concentration, made a lot of careless mistakes. In the end, after short times got fired.
Each time I took a new job, but I failed each time. All in all, I was fired from nearly twenty jobs. Then I went to a psychiatrist, for checking if I would be in mentally health.
The doctor committed me to psychiatry, and there they diagnosed a seldom form of schizophrenia, that couldn't get treated. And in consequence, I got retired.

Since I have a lot of time where I'm able to engage me in my hobby. Thanks to the www, I could read a lot of programming stuff in my native language. But because almost all articles are written in English, I engaged me in reading at this language. And at the consequence, I got better and better in that.

Because most of my friends are also mentally ill, and because I never visited an university, I have no one in real life who shares my hobby.
And so I'm a lonely programmer which learning all programming techniques by reading articles in the net and by buying books which are recommended by others.

The main reason because I wrote this post is, getting suggestions of books whose are handling fundamentally programming techniqes and whose are not too hard to read. Especially I'm searching for books where I could learn how to design software architecture. But I guess, this could only get learned at a university, in a team, and with the help of a well skilled mentor. Isn't it?
As I have gotten older I suspect I am suffering from something as well. I can no longer think quite as clearly as I used to, and sometimes working through a problem becomes very difficult.

Some times I can do it, easily enough.

Some times I can not.

It is very frustrating when my mind stops working.


Most of the programmers I know personally are horrid, arrogant snots, who think their knowledge makes them smarter than everyone else around them. I have no interest in them.

Frankly, almost all the cool programmers I know are here on cplusplus.com.


It helps, a lot, to go to a university. But (good) university classes are always very intensive, and do not cater well to people who learn slowly.

If you can, I recommend simply auditing a class, as many times as you like (or until the university notices and tells you to bugger off), to learn topics you think are useful.


There are a lot of different architectural designs for software, but they all tend to fall in just a few categories. What is best is that you have a strong idea of:

    what your software does
    and your software’s user interface

Once you have the two fairly firm in your mind (and written down!), then you can start designing your software’s architecture. I find that some things are best designed bottom-up (specific functions/function systems/modules), and some things are best designed top-down (application structure). You meet somewhere in the middle.

The next thing to do is pick some software you wish to write and find a book on that. For example, I read a lot of how-to books on writing games (back in the DOS days) and raytracers.

I wrote a lot of code that played with graphics cards (HGC, EGA/VGA, and a lot of Mode X and VESA stuff), performing fast bitblts, lines, text etc.

I spent a lot of time writing interactive video game clones and variations, like a 3D space shootem-up, and a Ninja Turtle game complete with sprite and level editors. And some DND-like dungeon crawlers (old DOS stuff again). Pong and Breakout clones. Tetris.

I have also spent a lot of time writing system utilities, like things to manipulate cmd environment variables belonging to other processes.

I played with large open-source projects, like Blender-3D (text editor) and the Tcl/Tk core (joystick calibration and sampling, PNG reading, etc). [Alas, none of my stuff is out there for anyone to see... LOL.]

All this taught me a lot about making user input work on a timer, interfacing with different kinds of code, interfacing with people, and various advanced graphics algorithms.


I have also played with more programming languages than you can shake a stick at. Mostly iterative, but some functional.


I don’t know if this helps any.

The point is, you don’t necessarily need university courses or someone else’s idea of a good general-purpose programming book to get along.

Find something you want to do, then work at making it happen. It doesn’t really matter if you ever produce anything amazing. It matters that you enjoy the learning journey.

:O)
Last edited on
It doesn’t really matter if you ever produce anything amazing. It matters that you enjoy the learning journey.

The thing for me is no matter what, that I created a program which didn't exist before and does (mostly) what was just an idea in my head is very much amazing.
I cannot memorize well either. I all but failed courses heavy in that, like history -- even when I *liked* the material, names, dates, places and such just would not stick. In programming, as I am sure people here notice, I miss names of algorithms/techniques/etc and modern c++ has me hitting references all the time to avoid building something they stuck over in algorithm or something. I once failed a summer reading test because I read it early on break and forgot it all by the time school started. Biology was a nightmare.

My computational engine was much better, and I could do math whenever it was not something idiotic like the division formula for calc (I invert and multiply those because I can't remember it) or diffeqs where you have to memorize a billionty trig forms and so on. If I have a cheat sheet with the info, which I do on a job but not in school, I can do the darn things easy enough.

College, where open notes was a thing, was much better than early school where it was GIGO or fail. If you are looking to do a class, see if you can find one where you don't need to memorize but can refer to your notes or book or even the web.

-------
There are tons of design books and you can certainly learn it on your own. I don't know many books on it, but they have been written since the early 80s or before, though the old stuff has been replaced with better ideas. Architect may be a tough road for you; the ones where I work have a great deal of memorized info so they can draw from a large pool of things to put together to build something. Its hard to make a big picture without knowing all the possible pieces and how they may be able to interact and what the best approach is (from various views, performance, cost, complexity, and more).
Last edited on
Thanks for your responses.

Yes, there are plenty of books which handling software design.
What I miss, is that these books lack of real code examples. So if there are would be described a software pattern or so and they handle a chart, it lacks at showing sufficient code (at least there it was so at any books that I had in my hands).
Especially OOP needs mostly a lot of classes, files and soon. Sometimes I code a dozen or more at one project, and then I lost easily the track of how they need to interact with. Then I try drawing a relationship chart. But mostly I'm unsure how I need to express some relationships. It would be a great help if I could examining free software projects, which provides both some charts together with the code. Maybe I haven't looked eagerly enough for such projects. But most projects, especially if it's a one-man project, doe not even have sufficient comments. That was at my earlier projects also the case. But since I shared some of my code on open repositories, I enforce me, providing sufficient comments (which could get parsed by Doxygen or so). It would be great if I could provide them also with UML-charts.

Have you any suggestions, which books close the gap between charts and code? Which open-source projects are documented well with both code an design charts?
look for a book that has an ongoing large problem case study as its theme.
such texts use the same problem for all concepts, sometimes increasing the requirements or whatever along the way as you get past the early parts, and introducing issues like requirements changes or the like. There are also classes that do a case-study from end to end. You don't get ALL the code, usually just stubbed out class frameworks in a RAD type style, but its enough to see.

I normally prefer a book but for this kind of topic, an online class looks really handy. Esp if its not broken into a bunch of segments of 'hey this is me --tiny bit of info -- hey buy my next video for another tiny bit of info' format.
closed account (E8A4Nwbp)
I can no longer think quite as clearly as I used to, and sometimes working through a problem becomes very difficult.
cannot memorize well either.

I suppose a report against this post is justifiable, however, with no intentions of casting aspersions, can't one consider it auspicious to have the conventions of senility manifest in themselves?

Heh, congratulations! I admit it took a little longer than usual for an armchair psychologist to decide on personal attacks against a poster over a reasoned continuance of the actual topic of the thread.

Or tl;dr: prove to me I'm senile.
closed account (E8A4Nwbp)
Or tl;dr: prove to me I'm senile.
That's why I said conventions. The benefit of ambiguity
Last edited on
Topic archived. No new replies allowed.