Monday, March 30, 2015
Day 6
I started studying Ruby on Rails with some really nice books to help me along the way. I fell in love with the MVC Framework. It is the most simplest framework that I have been exposed to. It makes things so much simpler on the developer and his process for creating online applications. I continued some progress with learning more about the C++ language. Right now I am currently learning and implementing console programs using the Object-Oriented Paradigm with Classes, Polymorphism, and Inheritance as my tools to reach my solution. I really want to start creating applications using both C and C++ at once, I believe that this process is called stacking. So we shall see where this progress will lead me. I believe a great way to try this out would be to create a Scientific Calculator using C and C++. I believe that I can use C++'s class structures to create classes for the scientific functions on the calculator. I might even bold to create an Open Source project out of this idea. To create a piece of software similar to Mathematica.
This would require me to begin construction on a website for said project including features such as a forum, and a irc channel. This would be a great project to begin my building my skills creating online applications for people to use. I am wondering currently what the status is on .Net becoming Open-Source I would love to see Microsoft Developers create a similar environment that Linux has built it's foundation upon. This idea being of course Collaboration, the single most important thing to a developer in my eyes. Nothing nowadays are created by one person, it's built by a group of individuals that is the one lesson that I have learned over the years that there is only so much a team of one person can do. Making a videogame for example takes an entire staff of people or for the indie developers out there the staff can be limited to just one to x amount of people. That is why I have such great respect for indie developers taking the leaps they needed to take to reach where they are today.
It was not to long ago that Minecraft was just a blooming flower that would revolutionize how people see games as a medium. Games like this is what a game should always strive for. As a developer myself I can see the shortcuts that were made to release the game at launch and it always drives me absolutely insane to see such a buggy product be released. I believe that if a game studio were to come out in the near future and release all of it's source code for it's games for free right of the bat people would be able to reverse engineer the product and create some amazing in a similar fashion to Monty Oum with Halo and Halo 2 creating what is known as Haloid on the internet.
Collaboration is the one thing that I can take from this day and it's importance not only in the computing world but also on the broader scale of work in general. After isn't that what we call Corporations these days?
Till Next Time,
Aaron Jones
Day 5
Development Day 5:
Today and the past couple of days proceeding this I have been familiarizing myself with the differences in the Object-Oriented Paradigm and the Procedural Paradigm. Comparing the two and figuring out that it is essential for me to understand these two Programming Paradigms to perfection. Why this is? The answer is all to simple, why do people still study Latin. It's a dead language yet people of many different fields choose to study and perfect their understanding of the Latin language. This is due to the common problem solving method called Recursion. By using the problem solving method of recursion one can simplify a problem down to it's roots and simplest form and thus solve it. This is a common approach is all fields yet most people don't understand the concept itself.
After all most people reading this blog understand the efficiency and inefficiencies of using this method of problem solving to solve their problems but the efficiencies certainly outweigh all of the inefficiencies of using Recursion to solve everyday problems. A doctor learns this by identifying the patients Symptoms which lead to the resulting Disease or Problem that plagues the patient. I get this talk all the time going into the dentist about how I shouldn't smoke cigarettes because they will make my teeth fall out and have resulted in a plague build up, which by the way I'm getting cleaned for those of you who are curious. Will I quit smoking cigarettes because the dentist and doctor tell me the health risks of smoking of course not. After all I am an addict to the bloody things anyways and those damn anti-smoking commercials funded by the tobacco industry aren't helping out either.
But I digress, onto continueing my main point Object-Oriented Paradigm vs Procedural Paradigm. What I discovered is that for certain applications Procedural Paradigm works the best for those problems. Having a program go through step by step to solve a problem and being able to manage the memory like in languages similar to C leads to some pretty efficient coding. After all the OS that I'm currently using runs off this principal and nothing has broken unless I broke it myself. Like my MySQL server for some reason, that I have yet to figure out. Object-Oriented Paradigm however is suppose to be used as an extension of one's knowledge of the Procedural Paradigm is what I've discovered studying the C++ programming language over the past couple days.
Wrapping my mind around this idea was quite unique to say the least, but after closely studying the fundamentals of C++, I realized that sure one can create applications using just C++ but if one where to implement the C backing that C++ expands upon using both the Procedural and Object-Oriented Paradigms ones program would be quite efficient. This I believe is due in part to memory allocation being the most important thing a programmer can emphasize his code upon. C does a wonderful job and I believe by using both libraries one can create a solution that can follow verbatim, coming up with a solution with the time complexity of O (log n). Though it takes much work I believe by studying the root of C++ which is C can lead to some extraordinary solutions the world has yet to see.
I firmly believe that modern Operating Systems such as Apple's iOS and Microsoft's Windows OS lack these days is a firm grip on fine tuned software that meet the test of time via memory management and allocation. This is why the Linux Kernel is such a vast surpasser to each of it's competitors. Ever wonder why when using iOS it seems as if everything is auto-refreshing all the time? Or why the Blue Screen of Death or the Spinning Ball of Death are so prevalent in older machines? This is due to the lack of concern when it comes to memory allocation and management in their OSs. Most people don't care about those things and just move blindly forward to whatever looks pretty or is new. Well the best part about Linux is that a new release happens every three months compared to that of it's competitors releasing a new OS every year or two. The competitors are now releasing that their whole market depends on Linux because not only is a superior product but a versatile one at that.
I believe that Linus Torvalds is quite the genius when it came to the design of this operating system. I'm glad that I have been able to figure out what I have with the efforts and quality of coding behind the system. While I continue my education further I believe this man has pretty much solved all the problems the world has by creating something that can be edited and contributed to on such a large scale. After all if the Internet in which I writing my messages on, can be done so for free and without cost, why can't the rest of the world?
Till Next Time
Aaron Jones
Thursday, March 26, 2015
Day 2
Tuesday, March 24, 2015
Day 1
The textbook I'm using to base my knowledge of the C++ programming language is Larry Nyhoff's, ADT's, Data Structures, and Problem Solving with C++. This book does a great job at explaining the intricacies of the language itself and by the third chapter one is introduced to memory management using pointers. I enjoy having the liberty to control my memory in such a fashion. After all it's predecessor is C and I do love writing code in C.
The next challenge that I have laid before me is familiarizing myself with using Wordpress to build a gallery website for a client. I have the package already installed on my server so all that's left is to fiddle around with it until I get the job done. I might have to pick up a book or two on the CMS (Control Management System) but it'll be worth it in my honest opinion. Maybe I'll even use it to transfer this blog over to a Wordpress site depending on how many hours I have to put into this but we'll see.
Started creation of my curriculum for AP Computer Science as I may have the opportunity to become an AP Computer Science teacher depending on if the school accepts my curriculum or not. The hardest part about creating curriculums is that I have to create it in a way that no one will get confused on the concepts but that's hard to do with Computer Science unless the student has some really great math background. This is what I'm hoping for but I'm creating two tests the students must complete on the first day of class to gauge there skills as well as some simple Google Forms to get to know that students better as well as the OS (Operating Systems) they will be using at home to further adapt my curriculum to match. Using Linux for the past couple of years made me come to realization that Open-Source Software should be the only solution for these students that want to learn how to develop. We shall see when the time comes.
Till Next Time
Aaron Jones
Update
So far though I've been offered two teaching positions, a contract for a website, and a contract involving Facebook and a local business. I've decided to use my knowledge to teach the ways of GNU and Linux and show the small community that they can do a better job using Linux as their backend rather than relying on Windows products. This also includes both the schools I'll be attending in the coming years, Eastern Washington University and Spokane Falls Community College.
Everyday I will be challenging myself mentally, physically and spiritually to increase my skills in the fields of Mathematics which in my opinion is my worst top and in the field of Computer Science. I'll be focusing on my weakest subject Trigonometry and Calculus based mathematics so that I can better expand my knowledge in the field of Computer Science.
I have landed myself in a weird predicament in which I can code nearly anything given enough time due to the foundation that I have built for myself with the aide of the CS Departments that I have donated my time to listening, understanding and implementing common practices amongst the field.
My primary focus in the Computer Science field will be on advance data structures and memory management. I'll be studying both Java, C, and C++ more than I've ever done before. I honestly prefer the procedural language structure found in C compared to that of it's so called successors Java and C++ using a object-oriented programming structure.
Till Next Time
Aaron Jones