JavaRush /Java Blog /Random EN /Catch a wave
Марат
Level 1

Catch a wave

Published in the Random EN group
Catch a wave - 1

Start

He received a law degree, but was always drawn to the world of zeros and ones, to the kingdom of the command line and the incomprehensible everyday life of a system administrator. While working as a lawyer, at the same time I learned a new specialty (Informatics. Programming and administration of information systems), and gained theoretical knowledge in programming, algorithms, and data structures. One fine day, the system administrator of the organization where I worked quit and when he left, he recommended me for his position. At that moment, my official working life as an IT specialist began - I continued to work full-time as a lawyer and part-time as an administrator of a fleet of equipment. Breaking the patterns of some users, he combined humanitarian and engineering work profiles. In fact, it is not easy to combine them not because of different directions, but because of the different nature of the load - users called on various issues, both legal and technical, and in an absolutely chaotic manner. In addition, I inherited a predominantly Linux network. Therefore, pronounced abilities for self-learning and broadening one’s horizons are important in any activity. To begin with, I sketched out the network topology, the number of workstations, servers, and the roles they perform. Subsequently, I had to delve into operating systems, the bash shell, delimitation of access rights and much more. Such tasks of quick “immersion” in a specialty set a good working rhythm, forcing you to solve problems that are unusual and have not been encountered before.

Reflections

After that, I worked in other larger organizations as part of a department and smaller ones alone, defeating the invisible “offenders” of my users. System administration itself is quite multifaceted and interesting, and there are many opportunities for development. You can retrain as a specialist in taming Linux or Windows systems, conquer databases, become a routing master, or quietly build websites. However, my brain was not reassured by such prospects, and it continued to search for something unknown, but very necessary. One not very sunny day at work, I was asked a question about a macro - it stopped working. First I figured out and fixed the bug that was causing it to not work, but something kept hurting my eyes. I wrapped some of the code in loops, renamed the variables, and after reading the VBA manuals (the macro was written in this language) I added a simple user form with action buttons. Having gotten a taste for it, I wrote a few more macros for Excel tables at the request of users.

Tipping point or point of no return

The critical point was the understanding that it is possible not only to maintain information systems, but also to create software for them, write small and not very automation, and study system architectures. Moreover, trying to get away from the procedural style of programming, I began to study OOP in more detail using Java as an example. Why Java? At the time I started learning this language, I didn’t have any special preferences in choosing. I assumed that the language was widespread, had good documentation and community, and that Android Studio was chosen as the development environment. Already now understanding how many features java has, we can consider it as one of the languages ​​for understanding the development cycle, basic algorithmic constructs, data structures and the very concept of OOP. Of course, it is difficult for beginners, but studying it in parallel with practice will help you start using software tools, look into the development cycle, allow you to usefully distribute neural connections and upgrade your thinking.

Quantum of creativity

Catch a wave - 2
Java in development for Android systems is the connecting link for various components and models, such a software glue. I think there is creativity in programming too. Some people write spaghetti code, while others look for elegant and efficient designs. Having art school behind me, I didn’t expect that this could be useful in development. In general, development requires not only complete consistency and adherence to rules, but also creative living ideas and non-standard thinking. Delving into the jungle of Android programming, a single developer becomes both a writer and a code architect, a designer of custom views and components, a code tester and a user interface tester, a dreamer and a creator!

Ignoring difficulties

If you chose programming, you have not chosen the easiest path. However, you have chosen an interesting way of thinking, relating to the world, an interesting way of developing you as a specialist. Whether you like it or not, programming develops you and brings you a little closer to achieving your goals. I am continuing the path of a system administrator, but gaining developer skills, and also writing a small application. I recommend trying yourself in programming, maybe it will change your life. Good luck to all!

Utilities

When learning any programming language, we cannot do without documentation. I use the JLS (Java Language Specification) , descriptions of Java and Android class libraries, and the Material Design manual. Among the volumes, famous authors include Eckel, Horstmann, and Schildt . The Intuit resource courses on the Java language turned out to be useful - Programming in Java (an old course, but well presented). Javarush lectures CS 50, Android. If, due to an error, there is no one to consult with, then the resource stackoverflow and others.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION