[OT] How to improve my programming skills?

Mirko mirkok.lists at googlemail.com
Thu Jun 1 11:26:19 EDT 2017


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



More information about the Python-list mailing list