I like to follow many rules of programming to make my code easier for others and myself to read, as well as making my code sharper and more reusable.
I focus on writing DRY code. DRY code makes your code consistent, and easier to read.
Early returns avoid your code from being too long, and allows you to avoid repetitive if/else statements too.
Having large if/else statement blocks make your code hard to follow. Removing if/else statements is easy when you use early returns.
When code inside of a function gets to large, it can be hard to read and make sense of. When this happens, you should extract code into its own function.
Code should be componentized and separated as to avoid close coupling between code.
I first started to learn how to code when I was just 9, when my dad hooked up a stop light to a Windows 98 computer. We wrote code in basic, and we were able to turn the stop light lights on and off using simple code.
My first computer was simple: a Raspberry Pi: a mini credit card sized computers that ran rasbian (a sub-distro of debian). This is where I first started writing Python 3.4, and realized just how much I liked the language, and I would go on to create simple text-based decision making games.
While learning Python, I also played a lot with Scratch, a simplified block based programming language. I made a program that would ask the user mathematical questions. When I created it I told my class just how proud of it I was: "It generates two random numbers between a certain range, randomly adds, subtracts, multiplies or divides, and asks the user the answer, and matches with what it was predetermined." Later on for fun I would also create my own 2D side scroller game engine inside of Scratch too.
The math project is still public, and can be found here if you still want to try playing it.
At this age, I was super slow at typing. I had to take a typing class to improve speed. At first I was terrible, but got very fast quickly, and ended up having a lot of extra time. So when I completed all the required lessons I asked myself: "How do these websites work anyways?" That's when I created my first really really simple website. The teacher was so amazed, and I was so excited, I got the principle to come see my website, which then sparked the creation of a new class at that school called "Creative Coding".
When I started to really get into Python, I decided I needed to make something more useful, and object oriented. I hated how hard and how long the math homework I got was (even though I love math, it was just busy work). This is when I learned and used the Python module named SymPy for solving symbolic math. I utilized object oriented concepts to make the menus clean, and keep the logic organized.
When I completed the program, I asked my teacher if I could use it for homework and tests, and they allowed me to, and thus I cheated on my homework and tests.
You can find the program here.
Eventually I ran into the head of technology of my school district (I'm serious), who said they had an internship for fixing chromebooks, and when I told him about what I do he saw a lot of potential.
That's when he mentioned he had cradlepoint routers that would turn cellular data into wifi, but their metric data would be cleared every 30 days, and he wanted a long term solution to storing the data. All he said was to use ElasticSearch to store the data, and gave me the documentation to retrieve the data.
I created a virtual machine to hold the database, and to periodically run my Python to retrieve, manipulate, and store the metric data. The project is public, and is retrievable here.
After completing High School, I decided I needed to do something more algorithmically challenging. When playing with the Flipper (a multi-tool hacking device), I realized the programming language they were using for key-injection was missing major and basic programming features, which is why I created my new programming language using Python.