
Ask HN: Help me going from books to real projects - gws
Guys I need your help.<p>I&#x27;ve completed all Udacity early programming classes, Ng&#x27;s achine Learning course, Boneh&#x27;s Crypto 1 and Crypto 2, worked through most of SICP, all of Nand2Tetris, all mof CSAPP and done all CMU labs, programmed in Python, Clojure, Go, C, Haskell, Javascript, Bash script, lived in terminal with vim and tmux (but spent 6 months in emacs just to be sure), hosted my website on linode... and I could go on.<p>But I have never written a real software program in my life. Zero, nada, nicht, rien, nulla.<p>I need to stop doing courses&#x2F;books and just commit to write a real program, start to end, something useful.
But I can&#x27;t; I think it would be easier for me to start reading TAOCP and spend the rest of my life working through it.<p>So I want to try this: ask you to suggest a project that could be done in one year by a solo programmer as a side project. And then commit to the project in the most voted comment. Ideally I don&#x27;t want to do web apps or mobile apps, ideally I&#x27;d like to write something in C which for some perverse reasons I&#x27;ve really enjoyed programming in.<p>Please help me, I&#x27;ve already started reading the first few pages of the Rust book...<p>Help me make 2019 the year I wrote my first, real, computer program, choose a project for me!
======
topspin
You have to choose it yourself. Programming is a difficult intellectual
struggle and the only two things that I'm aware of that cause anyone to
endeavor to do it is either pressure (obligations to an employer, for
instance) or enthusiasm; satisfying some desire to make a computer perform
some specific task.

So either take a job that inflicts deadlines or discover some passion great
enough to make you hunch over a keyboard and squint at a display for hundreds
of hours. If you can't or won't commit to the former and you haven't a passion
that motivates the latter you may need to to reconsider your motivations.

------
djaychela
Hi

I'm learning Python at the moment, so I'll try to offer something from my
perspective (which is obviously different to yours!)

I found the best thing to help me learn last year was working on a project
that I came up with to help my girlfriend's school. She's an ICT tech in a
first school in the UK, and GDPR means (amongst other things) that each
child's parents choose which internal and external media they can be in, and
managing that is difficult. Between us we came up with the idea for an
internal web-based system which displayed this info quickly and easily for
staff, and allowed management of this info via an admin interface (including
import from .csv and Google Sheets). It grew considerably as I iterated on
features, and I learned SO much from doing it - both technically (I'd write it
completely differently to how it is at the moment) and in terms of planning
and soft skills, etc. I wouldn't have learned anywhere near as much by
spending that time on more courses.

Despite my technical reservations about its internal quality, it functions
well, and is in daily use at the school (hosted on a Raspberry Pi).

So, I'd suggest either finding something that someone you know needs doing,
and trying to do it. It's the same as when I did my apprenticeship (which
ultimately was in Electronics and Instrumentation, but in the first year
involved mechanical work such as lathe use, milling machines and welding) -
you learned skills which were OK, but it was the projects we did (making
parallels, a punch, eventually a battery charger completely from scratch)
which was where we really learned why we needed the skills and which areas we
needed to work on more.

