My Very First Neural Network
I had been in my introductory coding class for 2 months. We needed to do some sorting, so just for fun I stumbled across all the sorting algorithms and decided to work through mergesort just for fun. It was a huge waste of time, given that I was still an anthropology major, but it was fun.
After reading about sorting algorithms I came across a video about neural networks. I found them fascinating, and I decided make one. This article isn't really about neural networks, it's about that decision.
I barely knew how to program, and at the time coding wasn't my priority. Somehow though, I spent weeks reading about NNs, and finally came across a fantastic workshop by David Miller. I followed along for a bit, but thanks to C++'s overloaded '&' operator (especially on the left-side of an assignment), I was widly confused. I had to modify the code, and start to make it on my own.
To get it to work, I had to learn how to use the C++ stdlib, and how to really debug a mid-size program. All skills that weren't taught to me. I feel that many soft skills come from programming something you don't know is going to work. Most importantly though, I learned to love programming. The pride in pulling a dataset and seeing recognition, especially without any libraries, is a feeling I'll never forget. It's one I strive for often.
- A neural network in C is a perfect project for a beginner programmer.
- Pride is important in early learning, it should be valued alongside correctness and completeness.
- Building "nearby" a similar reference program does not impede learning for a beginner.
- Don't let being confused stop you in your tracks.
- Don't just follow a tutorial
- Small decisions that challenge yourself can have huge consequences.