📜 ⬆️ ⬇️

How I stopped selling food on the street and started working in top technology companies

In this series of articles, Alvaro Vidella (co-author of the book RabbitMQ in Action, previous jobs: Apple, VMWare, EMC) will share how he entered the world of programming. He never studied IT at the university, but found a way around it.

image

In late 2006, I found myself at the crossroads of life. Due to the circumstances, I could no longer continue my studies at the university, which destroyed my hopes for a career as a teacher of linguistics in high school.
')
In my hometown of Durasno, Uruguay, my wife worked for hours on end for a measly $ 160 (USD) per month. Yes, it is $ 1920 per year. We both donated our time so that I could become a teacher and find a better job because we dreamed of a better future.

The problem with dreams is that they tend to disappear when you wake up; The alarm goes off. As I suddenly lost my career path, I moved back to my hometown to see what my next step would be. Needless to say, I was very upset by the state of things, and our life situation only aggravated everything. I was glad to return to my wife, but the reasons for my return made me nervous.

Everything else, we lived in the same house with my wife's aunt, so our personal space was limited to our bedroom and we always felt that we had been abusing hospitality for too long.

In search of additional income, we were selling homemade pasta on the streets. I went door to door, collecting orders for the weekend. “Hello, do not want to order ravioli for Sunday?” I asked one person after another. “Yes, they are homemade. Give us some time and we will deliver them. ”

After people ordered, we spent the whole weekend preparing 2000 ravioli to get 500 pesos, which was only $ 20, not counting our costs for the whole process.

This whole situation seemed hopeless and disheartening. My wife worked all week so she could come home and spend the whole weekend helping me make ravioli. She did not have a day off that she could devote to herself. She begged me to stop selling ravioli, even if it meant that in the end we would hardly have money to pay bills. In the end I agreed, but this meant that I needed to try to find a job — and it was not so easy to find work in our small town. I felt crept worry and despair.

One evening I was talking to a friend who was studying computer engineering at the University of Montevideo. He told me about various job opportunities in the capital with a salary that was the dream of someone who lives in the countryside. “In Montevideo, there is a big company, Live Interactive,” he told me. “They always need programmers; maybe you can get to them. They really pay very well. ”

The salary he mentioned was about three times as much as our previous salary, and I couldn't help but think about how much we could do with so much money. We would no longer have to worry about how to feed. We could, finally, hold our own Internet, buy decent clothes and shoes, and even our own washing machine!

In this case, I already had some experience with computers. I always liked to deal with them, mainly because they responded to my love for solving problems. Programming reminded me of solving a code or searching for an answer to a complex riddle - but besides the fact that it was difficult and interesting, it was also fun. In addition to this, I saw programming as a job with great potential.

There was only one small problem: to work as a programmer, you usually need to know how to program. And I? I could have installed Linux myself, and that was probably my limit. How to get a job as a programmer, if you practically have neither such experience, nor a diploma to confirm your knowledge? How to learn how to program without having access to the Internet from home, programming books and mentors to talk to? Those were my problems in 2006, and this is the story of how I dealt with it.

First days


Almost all the time since teenage years I have been working on computers - especially when I was visiting my friend who had a PC. While we often used the computer only for games, I didn’t like to play it so much. Why? When I went to high school, a friend of my father allowed us to use his ZX Spectrum computer. He had a lot of cassettes with a lot of games for him and, of course, we could play anything, but once he showed me something that caused my roof to fall: people could create their own games by programming on a computer!

He showed me some chips in BASIC, for example, how to generate random numbers using the RAND function. I was shocked. Then I realized that computers are more than just the glorified Nintendo with a keyboard: in fact, you can tell them to do something for you — cool things, like drawing lines, using trigonometric functions, and then color them with any random colors! You can even create music on them by setting different BEEP frequencies. In addition, I once brought the Spectrum home and spent the whole evening playing various beep-signals on my television - my mom probably enjoyed it.

Later, during adolescence, I continued to spend time with friends who have their own computers, and, naturally, we played them. At the same time, along with my tech-friends, I recognized several operating system chips — mainly MOS-DOS.

From time to time we tried to program in BASIC, copying, character by character, snippets of code that appeared in old computer magazines. For us, they were something of a magic or technical spell. We especially liked to modify the messages that appeared in the game in a certain situation. We felt like real hackers!

By the early 2000s, I managed to convince my father to buy a computer for me: a Pentium MMX with 32 MB of RAM! That was a car! I first installed Linux on it using the SUSE CD, which came with an Argentine computer magazine. I spent quite a lot of time on this computer: trying different Lunix distributions, getting to know the command line, and so on, but never never seriously programming.

When I look back in the past, these days, I don’t understand why I didn’t learn C programming — or anyone else, for that matter. A friend of mine even offered me a C programmer bible written by Kernigan and Richie, so the lack of access to the manual is no excuse. But for some reason, after reading a few examples, I did not feel enough interest, because I did not understand how this might be useful to me. Anyway, self-indulgence with Linux was the only thing I was doing on computers at the time.

Since then, I changed several jobs, played rock and roll in a group and tried to become a teacher of linguistics, at the same time getting married and driving around the country with my wife.

Fast forward to November 2006, when I realized the need to be hired in some way by a software company. I needed to become a real programmer.

Time to set some goals


If I wanted to be hired, the first thing I had to do was to evaluate a set of my skills that could be useful to me as a programmer. I had to be honest with myself in order to understand what to direct my efforts to.

By that time, I knew a bit of ActionScript for Flash MX and the most basic things about PHP programming. Early this year, I learned these technologies as my hobby. I also began to study programming, thinking that maybe this could be another source of income.

I came up with the idea of ​​making a digital map of my hometown, where you could put dots, which would show the user the location of business enterprises, shops and other interesting places. Then I would take money from these business enterprises for the possibility of appearing in my application.

Of course, I know what you're thinking. “It's just Google Maps,” you say. Yes, but then in 2006, the only thing that Google Maps knew about my hometown was that it was crossed by a large national highway. With that in mind, my map seemed like a good idea. In addition, I realized that this project is a great way to demonstrate your skills to a potential employer. I had a clear idea of ​​what I want to do; I just needed to get to work and turn it into reality. So, at the end of 2006, I set a deadline for myself: by February 2007, I should have had a working concept for a map application. It was supposed to include a Flash interface serviced by a PHP module that uses MySQL to ensure data integrity. The technologies I mentioned may not seem very relevant today, but the point here is that I had to think over and fix all the details of my plan, so that I understood what to take first, because time was ticking: every day followed by a new day, when my wife was incredibly busy, working more than was necessary, only to feed our family.

Among other things, even with a chance to get a job as a programmer, I had to show potential employers that I could use specific technologies when programming, since this was part of the job description. Naturally, there was not one such skill in my resume, so I had to lay the foundations of this knowledge from scratch and my application would show my programming knowledge.

My plans were to come in for an interview at a company that my friend mentioned, and, I hope, with my skill set and my application, I would end up with a job there. Even then, I knew how important it was to set clear goals to achieve what I wanted.

Training Project: Map Application


The map application I created was called Aleph Maps — a reference to the 1949 story of Jorge Luis Borges, “El Aleph,” about a place in the universe where everything is present at once - past, present and future. Not a drop pretentious, is it? And in order to put the idea into practice, I needed to learn web programming.

The complete absence of the Internet at home is a real challenge for the future web developer. When I started, there was practically no switch to ADSL broadband, it was only at enterprises and, possibly, in rich houses. For an average family, an internet connection meant a dial-up connection and a duty to pay a lot of money for low-speed Internet access. I could not afford it, which meant that I needed to walk and bother my friends every time I needed access to an online lesson that explained how to program in PHP.

So even if I had a computer and a desire to learn, I still did not have constant access to information or how to do it. But I was determined to get this job and I knew that even these obstacles would not stop me on my way to learning PHP. When you have no time to just waste your time, you don’t have time to despair; instead, you should focus on finding solutions to problems.

Meanwhile, due to the lack of Internet access throughout the city, Internet cafes began to appear in it, which charged about $ 1.5 per hour on the Internet. It seemed to me a better idea than the constant concern of my friends. But it also meant searching for 50 extra cents and a pair of floppy disks, in order to come to the cafe, find all the information I need, copy it to a floppy disk and load it at home on my computer. Most often, the data was damaged when copying from floppy disks.

Imagine how angry and frustrated I was: I went to an internet cafe and wasted 50 cents. Half a dollar! It may not seem such a large amount, but at that time you could buy a burger and a bottle of beer for a dollar. For us it was a lot of money: it was our daily bottle of milk or a loaf of bread.

In those days, my usual day consisted of trying to solve problem A to get to point B. Sometimes the tasks were fairly easy and I felt rapid progress. On other days it seemed to me that I was going nowhere. For example, let's say I needed to implement such a function: “insert new data into the database”. This meant that I had to write all the obstacles I had to overcome in order to achieve this — from how to write an SQL INSERT statement before executing it using PHP — and then integrate everything into the application.

Each of these tasks was a commodity on my “shopping list” every day when I went to the internet cafe. I took a couple of floppy disks with me, and then I searched Google for blog posts, tutorials, and tutorials that would help me with solving the problems on my list. When everything was ready, I saved all this on my floppy disk and went home, hoping all the way the data was successfully saved and easily run on my computer.

Because of the uncertainty on the way back home on the bike, terrible anxiety flared up in me. “What if there is no data at all?”, I thought. “What if due to the fact that the bike shakes too much, the data will be damaged?” I don’t have another dollar to spend, so it’s better to be fine with this data when I get home.

Suffice it to say, it was not at all practical. Upon returning home, I used that information to solve the problem, but once it was solved, I did not have enough knowledge to take the next step. This means that I was sitting at home, thinking about the problem and being on standby the next day, when I could squeeze 50 more cents out of our budget to go to the cafe and repeat the procedure again. Although it seemed like the only option at the time, I had to admit that it was time for a new strategy. I needed something that contained as much information as possible about writing a web application with PHP and Flash MX, with guides explaining how to perform the most trivial tasks — all in one place. Not on the Internet, but in books!

It seems that this is nothing, but for someone in my situation, those kinds of books that I needed were not always available. The problem is that when you are a member of the marginal sector of society, access to books is not so easy. The maximum you could find in the library while searching for a book on programming was some outdated computer repair guide — perhaps some kind of dusty MS-DOS manual, or perhaps, if you're lucky, a book on BASIC or Delphi - but no more.

In most cities in the countryside of Uruguay, technical books are usually absent, and my city is no exception. This problem is exacerbated by the fact that most technical books, especially those that talk about advanced technologies, are written in English, so you can forget about local shops. In the end, I have only one option left: Amazon.

But it was also not easy. To buy books on Amazon, you need a small piece of plastic called a credit card, but to get access to it, you must have a good credit history - which is not a problem for most people. As for me, I lived in a completely different world: we paid everything we bought in cash. We had neither money nor confidence in the economic situation to conclude a credit plan.

For us it was like this: if we wanted to buy something more expensive than our monthly income allowed us, we either saved a few months, until we had enough money to buy what we wanted or asked someone from family members buy us this for us and worked to later return him the money.

And even if we had the opportunity to buy books on Amazon, we did not take into account that shipping from the US to Uruguay cost almost like the book itself, not to mention the fact that it will go a month.

Sometimes problem solving is easier than we think. In the end, we turned for help to our family. My wife has an aunt who lived in the US for a long time, so we decided that we could try asking her and see if she could buy me a couple of books on programming. So, during my regular surfing on the Internet, I wrote her a letter explaining my situation, clicked “send”, crossed my fingers and prayed to all the gods so that they would help me. A couple of days later a new letter came to my inbox. It was a response from her, clear and to the point: “Tell me what books you need and I will order them from Amazon.” After a little research, I asked her about “Flash MX Bible” and “PHP 5 and MySQL Bible”.

These books turned out to be incredibly useful in the following weeks. They were so detailed that I could move forward swiftly, without having to constantly visit Internet cafes in search of missing information. I could finally move forward in understanding what I need to know in order to create my application. And in the end, having access to all the information I needed, I realized that it was time to sit at the computer and get to work.

To be continued.

In the next article I will tell you how I prepared for applying for a job, as well as how the interview went.

The illustration that you see at the very beginning of the article was made by my friend Sebastián Navas .



The translation was made with the support of the company EDISON Software , which professionally develops ASP.NET site catalogs for large customers and creates a useful anti-procrastination application .

Source: https://habr.com/ru/post/340602/


All Articles