Learning Python and Other Things

I started somewhere in the middle, between Java, C# and PHP. They are considered mid-level programming languages, versatile for developing web and end-user applications. I have found them useful for the kind of works I do which is mostly about app development in short. My first mobile app was developed in J2ME (a multi-counters app for knitter). These days, I worked mostly with Unity 3D game engine and C# (starting 2017, where before JavaScript was still in used with Unity). Programming is like a second or third spoken language, deployed to communicate ideas and tasks.

To keep it short, Python was quite unlike what I’m used to. Presumably it was supposed to be easy to pick up with less syntax and less constricting rules on data type definitions. It wasn’t a tough language but I wasn’t going to use the language like I’m doing with C# or Java in app development (at least for the time being). Starting Python programming for data analysis is like starting a new subject in a new school year that built on the knowledge you completed the previous year. If there were working remedies for picking up a new programming language comfortably, they would include a lot of personal intuitions gathered from past experiences. It could mean:

  • Understanding why you need the new skill and understand clearly how it would incorporate into your current workflow. In game development, we generate statistics to measure game performances in different levels of gaming. If you are designing an enemy AI for a game level, the algorithms are measured against that level expectation. Game analytics provides the insights for game level design and other aspects of game mechanic engineering.
  • Identify the best tools for the purpose, the IDE (Integrated Development Environment) and all the shortcuts that come with it. This is the first time I use Jupyter Notebook (a.k.a IPython Notebook) and loving it! There is a host of benefits to combine notes with coding and various data visualization techniques.
  • Start working on real life projects from the beginning. There is no cut off as to how much knowledge you need to start creating values with your work. Here is where you catch the gaps between reality and theory.
  • Keep a close tap on the all the documentations available. It is not how much skill you need to solve a problem immediately but how fast and effectively you can get to the solutions. At the current speed technology advances, no updated, physically publishable material could move in the same pace as those technology blogs, YouTube releases and tutorials from the tech companies.
  • Have a learning plan.

I have another website named after my avatar, TrineEpiphany.com on 3D modeling and game development. To separate the quantitative works from the design space, I started this other web site on coding, statistics and applications. However I find that at times it can be difficult to delineate the line that separates innovation from logical operatives in real life deployments.  There has to be a balance and we are looking for it all the time.

Sharing these thoughts keeps me organized.