Programming and scripting
Programming - as time goes
When I was little, I quickly get familiar with the computer we had at that time: "Sinclair ZX spectrum". Some time later, the very first PC (CPU celeron 266MHz) joined our home. At first, I just played games, however soon enough I realized that I can make various school assessments in Word. That is how I slowly moved from "games only" towards "something productive".
Some time later I started with various creation of icons, animated icons and cursors. Even little later (I was approximately 8) one of my classmates started with programming. Fact of having executable which carries my name was enough for me to start with learning. I started with language Visual Basic 6.0. My creations (some of them) can be downloaded from this page (subpage download).
I don't know whether this can be called programming, however I can write macros in Excel (VB for Application is very similar to Visual Basic 6.0)
These skills came handy at the end of Elementary School, when I together with few friends (yes, including the one who brought me to the programming at the very beginning, just this time I knew the technology and he was learning it) created a school page for some competition, and we created it exactly in PHP. Thesis was "School roots", it is pity that the page is no longer online.
When I mention Elementary School, I should also mention teaching of informatics there. Nothing much from the beginning, turn the PC on, search something on the internet (Google was not used so much at the time) and basic work with MS Office. I had opportunity to be attending subject, where we programmed building set LEGO DACTA. It was really interesting subject, however lesson dotation was insufficient to learn and make something reasonable. At the end we had lessons where we worked with Comenius Logo. Quite nice tool, however at the time I felt like I was not learning anything new.
Meanwhile I attended Gymnázium Ľudovíta Štúra (high/grammar school equivalent), where we took Pascal. We used Borland Pascal and Turbo Pascal 7 environments. Apart from Pascal which was part of the standard education I learned MySQL, because I realized, that ready-to-use DB systems perform better, than managing everything through file-system by myself. Towards the end of the school, I and my friend were working on one project in C#, so I fast-learned it. At that time, we used Visual Studio 2005 Express environment.
Next I attended MFF CUNI in Prague pursuing Bachelor degree, where we had much broader and deeper subjects. Students are allowed to choose subjects per semester as they like (and timetable allows) here, so next paragraphs corresponds to my choices. Most subjects are independent of a language. These are focused on generic algorithms, proves of algorithms, algorithm efficiency, making programs efficient (time contra memory usage) etc. In the first semester we used Pascal (with environments Borland Pascal or Free Pascal).
In the second semester, we swapped from Pascal to C# .NET. In this semester we also had subject focused on UNIX basics, where we learned basic maintenance of UNIX based OS, orientation in shell including BASH, usage of common tools like SED, AWK and others suited for creation of simple routine scripts, or small programs.
In the third semester, some language specific subjects were added, which were naturally more focused on the specific language than generic algorithms. In my case for C++ and C# .NET. For both of them, we used Microsoft Visual Studio 2010 as environment. Another subject was focused on database systems, planning of databases and other things around databases. As part of subject focused on probability and statistics, we had to make an assessment in R, which can be more or less considered programming tool too.
In the fourth semester, I chose subjects Advanced programming in .NET, where we took closer this platform as well as some things directly in MSIL, and Advanced programming in C and C++, where we took our hands also on C++0x (which was not deployed at the time). Both these advanced subjects intersect via C++/CLI so I had it from both sides. Another subject this semester were Non-procedural programming, which was focused on slightly different way of programming. Languages we went through: Prolog, LISP (Scheme dialect) and Haskell. Whole concept of non-procedural programming is nice, however for now I prefer standard imperative approach (preferably object oriented and event driven).
Subjects in the fifth semester was not so oriented on programming. I continued with my Bachelor thesis: the PDDL Studio and absolved these subjects:
- Algebra I
- Internet - communication basics (TCP/IP, HTTP) and HTML
- Data organisation and Data processing
- Computer Graphics I
- Windows Systems Administration - on top of it a achieved MCTS:72-640 certification
Computer networks I along with what I attended local CISCO academy, where I achieved 2 from 4 CCNA Exploration courses
- CCNA Exploration: Network Fundamentals
- CCNA Exploration: Routing Protocols and Concepts
Sixth semester was mainly about finalizing my bachelor thesis and preparing for final state exam. During these preparations I also finished remaining two CCNA Exploration courses:
- CCNA Exploration: LAN Switching and Wireless
- CCNA Exploration: Accessing the WAN
However most importantly, I managed to finish my Bachelor work: the PDDL Studio, made it to be accepted for system demonstration on ICAPS2012 and finally: successfully finished my bachelor studies achieving Bc. title.
Right after bachelor studies I attended MFF CUNI in Prague once again, this time pursuing Master's degree. However before the semester started I had some time (without school duties after long time), so I worked for Fischer software. We worked mainly with C#, ASP.NET and had it connected onto MSSQL database.
In the first semester of magister studies, I stacked little more subjects to lighten the succeeding ones. Among others I added subject with Java, so now I have the full triplet. Some other subjects were focused either on theory about algorithms and data storage, or analysis of code. One fun subject was Evolutionary algorithms, once the problem was pseudo solved I spend quite some time just playing with the solution, and how to converge towards it faster, yet still precise enough.
I planned fewer subjects in the second semester than in the first, however Programming in Parallel Environment and Embedded and Real Time Systems took way more time than I expected. Enough people recommended me Recommended Programming Practices as suitable subject, and because I want to work as programmer, it seemed like a good idea.
Third and fourth semester were really quick and intense. Finally our team managed to finish and defend Software Project, I managed to finish and defend Master's thesis and successfully finish my master's studies achieving Mgr. title
Shortly after studies, I joined Barclays.