Hello everybody!

TLDR: Sorry for OT. Long-time Linux geek and hobby programmer wants to improve his coding skills. What's most important: project planing, algorithms and data structures, contributing to FOSS, web development, learning other languages or something else?


Sorry for posting such a (long) off-topic question, which even is partly even more about psychology, than about technology. But I'm mostly using Python and Bash for programming and am reading this mailing list/newsgroup for many years now, and hope it's Ok (feel free to direct me somewhere more appropriate, as long it's an equally helpful and friendly place).

I'm looking for a way (*the* way, ie. the "BEST(tm)" way) to improve my coding skills. While I'm a quite hard-core computer geek since 25 years and a really good (hobbyist) Linux-SOHO-Admin, my programming skills are less than sub-par. I wish to change that and become at least am average hobby-programmer. I'm an excellent autodidact and in fact, all what I know about computers is completely self-taught.

Now, the problem is, that I'm 41 years old now, have a day job (which hasn't much to do with advanced computing stuff), friends and all that. There is little time left for this undertaking (something like 5 - 10 hours per week), so I'm looking for the most efficient ways to do this.

I identify the following problems which could be worth improving:

- I never sit down and plan anything with pencil and paper, flowcharts, UML or anything else. I just fire up Vim and start typing. That works (albeit slowly) for simple programs, but as soon as the project becomes a little more complex the parts and components don't match well and I need to botch something together to somehow make it work. And in the resulting mess I lose the interest.

- I never learned algorithms and data structures. I know *what* (linked) lists, dicts, arrays, structs, and trees are; what binary search or bubble-sort is, but I never really studied them, let alone implemented them for educative purposes.

- When it comes to coding, I'm heavily shy and unsure. I really know my stuff when it's about Linux-SOHO-Administration, but when trying to contribute to FOSS projects I always hesitate for several reasons (somehow I never find those low-hanging fruits that everybody talks about; either it's super-easy or to difficult.)

- For my day job (which is absolutely not my dream job) it would be quite useful to know web design/development, especially WordPress stuff. But web programming always feel like being trapped in a mangrove jungle, with all those browser-specialties, different and incompatible JS-engines, PHP versions and all that. I'm almost never in the mood to learn web development.

- Beside Python and Bash -- which I both know rather well (for a hobbyist at least) -- I only know a little C, some LUA and a tiny bit of Scheme.

- I'm very hard to motivate, when the issue or topic doesn't interest me much. I know some tricks to increase my motivation in such cases, but don't use them enough.



What do you think, which of the problems would be most important to overcome? What would be the most efficient way for improving my general programming skills? Do you have any other suggestions or tips?


Much thanks for your time!

Mirko
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to