My Education
Bottom line:
I have been studying and practicing my craft for more than 8 years as of writing this, since early in the summer of 2015. I earned my degree: Bachelor of Science in Computer Science from Central Connecticut State University finishing in 2021. There I also minored in Mathematics, which I believe has the potential to be very valuable. My understanding of calculus and physics, for example, make writing physics simulations extremely easy and intuitive for me, but more generally common complex math is no obstacle to me, I recently learned that this is not at all the case for most of my friends. There is nothing I cannot learn, and therefore there is nothing I cannot accomplish.
More reading!
There is a lot of debate as to weather college educated developers are better developers than their self educated peers. I think the answer comes down, in the largest part, to motivation. I believe that a student who attends a university for the first time only interested in the earnings potential of the field, with no experience or familiarity with the craft, can make it through their degree program without ever developing that spark, that person will be worse off than a self educated and passionate professional.
I am both self educated, by the might and will of my own enthusiastic spark, and university educated. I estimate that around one in ten of my peers entering their computer science degree program had a perceptible level of familiarity with the craft, and many went in blind and felt that it was simply a good career path. It did not take much time to learn that the effort I had put into learning myself was mush more valuable than the degree program would be. By the time I had earned my degree, knew it for sure. Although, I had learned some great and valuable lessons that I had not already picked up myself, but thees were few and far between. Among them: read the manual; cryptography is not magic, and there are great resources on the topic; security is only as good as it is easy, if security gets in the way, users will sabotage it. I've never been one to look at how far I've come, but just this last week I realized that I had probably learned more of value to me as a person and as a professional in the time since I earned my degree, than I had before that point in my life. I just don't stop learning, I won't stop.
A brief history
I have a photo of myself playing with a keyboard as a toddler, and drawn pictures of me tending supper computers from the second grade, but it was in middle school when I asked for the first time to my old friend, "Have you ever looked into programming computers?" it was something I had heard was possible. In my second year of high school an opportunity to learn more presented itself, a new teacher was coming to our school, I could take his computer science class in the following academic year, I took it. During that summer I dove into my first programming language, Python, and I loved it. I did not want to go to this class without knowing what I was doing. It turned out, that no one else knew what they were doing. The knowledge that you could learn computers on a computer was well, pretty exclusive, and still is.
My teacher was an awesome man who had been working for AT&T, but he wanted to try his hand at teaching math and programming, he felt that he would regret it if he never tried his hand at teaching. He loved us and we loved him, but his math students treated him poorly and bullied him. He did not renew his contract with the school for the following academic year. Despite that, he taught the most important lesson that any teacher of mine ever has, a lesson that would not even be repeated in any of my university classes, and he taught it in a single minute, he taught us that we could learn without the help of a teacher, that we could learn anything if we looked to the web for knowledge. He said it in a way that today I am privileged to know is very wrong. "G**gle is your friend". I now know that G**gle is very very bad, and wants nothing but to take advantage you. But it really was not the point of the lesson. Back then G**gle was really just known as an effective search engine. The lesson meant that searching the web is fantastic and practical way to find sources of knowledge. Oh and we made some games in Java for the class, we even had a team competition, my team won, I wrote most of the code, I could not help myself, it was so much fun! The game was a zero gravity 2D space shooter where you needed quite the skill to drive, because you had to contend with rotational and linear momentum. My team mates will still remember "rotmo"! And as of writing this I have a very similar, but more sophisticated game in the works, making use of the best game engine in the world, Godot. I'm in the midst of writing code to guide missiles to their targets, its pretty cool because they have to contend with realistic physics and must use simulated rocket thrusters to adjust course.
The next year I took AP Computer Science, and didn't really learn anything of value, accept maybe what a protocol is, we had downgraded from codding in Java using a professional IDE to block coding in Scratch, an application that seems fit for mid to late elementary school. The next year was university, and sad to say, the programming classes never got to the level of that first high school class. We were asked but luckily not really forced to use BlueJ a Java "IDE" that feels like it's built for middle school students, and we never got beyond basic challenges to actually make something. The good new is, that in high level classes like Systems Programming and Usable Security, Both taught by Dr. Yusuf Albayram, and Computer Architecture taught by Dr. Zdravko Markov, we did get to use professional tools, and we did get to make something of what we learned. My favorite projects were form Albayram's classes, we had the freedom to be amazing, you can take a look at some of these projects in my gallery. For me, snake takes the cake. Also, as an honorable mention, though the class was purely theoretical, it was one of the best I took: in Security taught by Dr. Chad Williams we also had a chance to create something on topic, I made demonstration malware for Windows taking advantage of some of Micr*s*ft's most obviously dangerous design choices.
For a while I sounded like I didn't like university, and there is a lot I didn't like, but things really did get better in high level classes, and from talking to friends who attended universities in other states and countries, I was blessed to be a CCSU student, and I'm glad to be an alumnus.
Since then I've been learning relentlessly, this time learning mainly about the power of self hosted free software through practicing self hosting. I run my own digital life, I am my own Systems Administrator, and there is no privacy policy that you are too scared to actually read, it's mine. I have everything that you can pay G**gle for with your freedoms and your dollars, but I've taken back all my freedoms and I save my dollars. I've learned to do all this, setting it all up and taking care of it, and I've learned how for the most part it can all be bade to take care of itself. Since January or 2023 I've had the pleasure of doing all this and more for the CamaCraft community. And even more recently I've rediscovered the joy of programming applications, and its looking like I will find bliss in a healthy balance of both approaches to creating software solutions, creating and contributing, and hosting too.