Tags

    Summary and Update

    Architecture and Immediate Focus:

    Mainly, I wish to continue my work with the Visualization project that I worked on last year. Picking up from where I left off, I still think that re-creating the Energy Lab is a good goal. Perhaps before trailblazing through the whole creation pipeline with a very complex structure such as the E-Lab, it will be more beneficial to first attempt the process completely with another more general structure.
    I was able over the summer to obtain blueprints of the model houses that the resorts are building. They are not simple, but are much less so than the Energy Lab. I think that beginning with modeling one of the smaller houses and going through the whole processes until there is a decent result that I can demonstrate as a proof-of-concept in real-time is not only good for learning, but gives the idea legitimacy. This is the major insight that I gained this summer while talking to some people in the real estate market locally.
    Another major social aspect of the project will be to get in touch with more professionals in the real estate market and also architects to see where the real world benefits of the project lay and which aspects that the project offers can truly be implemented to their fullest potential.
    The overall approach is to first work out the pipeline for the process of getting a deliverable and stable experience of the Visualization completely. This means that I will spend some time investigating and reflecting back on what I could have done better (the goal of the project remains the same, the process and examples of it might change a little) to get a working demonstration. Afterwords, I think that it is plausible to pick up where I left off with the Energy Lab work. This is to set a stable precedent to be able to create a work-flow and pipeline of tools to tackle different structures or mediums in the future with the added benefit of a streamlined documentation.


    Programming and the Broader Learning Focus:

    It is rather irrational how I have approached things so far with all of the different languages that I have tried to learn for a myriad of reasons. I felt like it was time to settle on something that I knew I could stick with and learn mostly without the ambitions that come along with “new and exciting things!” I initially started with GO (golang) a language that was initially developed by Google for their servers, but since released openly and maintained by a community. It is the fastest growing compiled language as of last year, and many developers are suddenly in demand. After looking at it for a while, I jumped onto the Slack Gophers (the majestic mascot of go) page and asked for some direction, as tutorials that I found where mainly aimed at experienced developers. I got some great pointers, manuscripts of books that were not even published yet, email support for any question I had, and even some real time tutoring from big names in the community. I was a great experience, but not so much for understanding. I mean, I know how things worked generally, but like my research into transistors, logic gates, adders and so on… I wanted to learn more of what happens under the hood. This is about the time that I put GO on ice, and started looking elsewhere.
    I remembered that I heard about a book somewhere called The C Programming Language and how that book had caused C to go wide. I started to read, and the more I got into it, the more convinced I become on the concept that C would be a language to learn all the basics with. Contrary to what I was reading months ago, after the first 20 pages, C made a lot of sense. I like how an article put it: “I tried many languages but finally I came to C, the most beautiful and charming language of all. I was literally blown away by the simplicity and elegance of C. Though C is simple it is one of the most powerful languages ever created.”
    The more I learn from the book, the more interested I become. Unlike Python, where so many things are implied to begin with its difficult to grasp why things are the way they are, C is intuitive. I suppose that my limited, but general experience with different languages and concepts has already given me a good understanding of what is written in the book. While I don't feel like tinkering with Swift, Python, C++, Go and JS/ECMA was a waste at all because these experiences gave me good general understanding and precedent for what I study now, I feel like C is delivering the sense of momentum and understanding that other languages did not provide and were not able to captive my interest for long. Its been somewhat a relief to find something that I can understand how to understand (if that makes any sense), and I look forwards to continue to build up true understand of core concepts using C.
    I have tinkered around with making my own 3D engine from scratch with C, and it has been challenging and fun. Most of what I accomplished here is due to source code already being available, so I hacked it in different ways. This has helped me learn more about C, and about how graphics work in general, which is fascinating to learn given my other more artistic interests.
    I am concerned with the applicability of what I am learning though, given that C is starting to tapper off (although very slowly) to languages like Go. However, I think that learning it is beneficial to my understanding of these other languages. Building from the ground up seems to be what is best for my studies, after drinking from the fire hose a few times as Mr. H would say.
    In the future, I plan on learning Go as an entrance to interpreted web languages, as Go has standard library networking and web server capabilities. I think that it would be excellent to use if I ever want to create a networking project. JS and all these different web frameworks where extremely difficult to start learning and I got nowhere quickly. This is why I want to first focus on the actual CS side of things first with compiled languages, and only then move onto these other facets. I believe that most of the skills I'm learning with C will be applicable. As I understand, most languages have a C binding, as they are written in C. It would be interesting eventually playing around with the C python bindings are seeing how transferable different parts of a project are and how they can interface effectively.
    TL;DR: I want to focus on core concepts and understanding of CS using plain C to begin with so I know what I am doing in the future and have a more specialized and deeper understanding of programming and development before I move onto anything else in programming.


    Comments