ecosmak.ru

Voice assistant “Alice” jokes: “The programmers selected these jokes for me. The voice assistant “Alice” jokes: “The programmers gave me these jokes. How old is your programmer Alexey

Unlike many of my colleagues, I was not born a programmer. I was born a musician. I didn’t learn to program at university and until a certain time I didn’t even intend to connect my life with IT.

But I have always been attracted to Moscow, with its wide sidewalks, long embankments and huge parks. But once there, you feel the need for money more than in any other city in our amazing homeland. At that time, my older brother rented an apartment with two programmers working in some bank. So, in one of the kitchen conversations, I plunged into the world of Python for the first time. From that moment on, a lot of time passed before I got my first job as a Python developer.

First steps in programming

So, once I was in Moscow, I had to look for a job, since I couldn’t live as a guest for a long time. At that time, my skills were only enough to get a job in technical support of one large and immoral company. I accepted requests by phone and walked back and forth along the long corridors of the building to connect mice to system units, which in turn flew out of their sockets for all office employees.

It was there, realizing the absurdity of what was happening, that I wrote my first program. In my free time from routine, I studied the capabilities of the language and wrote scripts for system administration. Senior administrators quickly noticed this and began to give me tasks to write this or that program, and I was surprised to discover that even with my minimal experience, I was a better programmer than they were and could be useful to them in this.

First job

Surprisingly, I have never worked as a junior. I went straight to middle. But I tried to get a job as a junior developer. I remember that interview well.

Two well-educated programmers (amusingly, they were husband and wife) tested my knowledge and thinking for two whole hours, after which they concluded that I clearly did not have enough knowledge, but they did not refuse me, but gave me a list of references and sent me to complete my studies. Two weeks later, I returned for an interview and demonstrated fantastic learning ability, answering many questions that I could not answer before. The next day they called me and said that I had been accepted. They quoted me a salary that wouldn’t even be enough for me to pay rent and food, not to mention any luxuries. I immediately refused and never regretted it, as I got a job as a system administrator in a world-famous company, where I continued my self-training as a programmer. I learned one thing from this story important point- nothing guides and pushes as well as an interview!

What's next

At some point, tired of office life and working as an administrator, I saved up some money and went to travel to India for six months. Oh, if I could describe what those six months were like, a book would not be enough, let alone this article. When I returned, I already knew that I would try again to get a job as a programmer, and this time luck smiled on me, and I was much better prepared for this. Over six months of traveling, I improved my spoken English very, very well, which now helps me every day in communicating with colleagues. Getting into a language environment turned out to be much more effective than any textbooks (by the way, the same can be said about programming). But it’s better to jump there by already understanding the basics, otherwise you will use the conditions in which you can become advanced to learn the basics.

So here it is. At my first job as a programmer, I was the only backend developer in the company! You can't imagine anything worse! Well, I got what I wanted. But at my second job, I found myself in a wonderful team where real professionals with extensive experience worked. Thanks to them, I acquired a code culture and learned about high standards in development. Misha Korsakov and Andrey Belyak - respect and respect!

Now

And now I work remotely for an international company and this has its advantages! Just don’t think that I’m now lying on the beach with a laptop and enjoying life to the fullest. I still work a lot and get tired a lot, but I don’t need to go to the office. I live in St. Petersburg, sometimes I travel. I managed to live in Portugal, Italy, and Georgia, but I can’t say that I had any special holiday there. Organizing travel comes with a lot of extra complications, and when combined with work, it can be twice as hard as working from home or an office. But you can see a lot of new, beautiful and interesting things. And this is a clear plus!

Mentoring

And my mentoring began in a very funny way and without my participation. Once I was visiting a friend and accidentally left him with a book on Python and Django. And the next time we met only a year later, and then he surprised me. He says, and now I work as a programmer! Remember, you forgot my book, so I read it, made my own website based on it, and recently got my first job.

It happens!

Later, my mentoring continued with the fact that I began to teach one of my friends. Despite the fact that he spends almost every day at another job, our business is going very quickly and well. Your first job as a programmer is just around the corner!

How to become a successful Python developer? Alexey Kurylev will share his experience with both beginners and experienced programmers

Questions

What advice would you give to beginners that is rare or considered unusual or controversial?

Fit into any movement! Don't miss a single opportunity to practice! Always be open to any suggestions!

And what is very important:

“When faced with ambiguity, resist the temptation to guess.” - zen of python

How do you keep your skills current? How do you constantly grow and become better as a developer?

Well, work doesn't allow you to become irrelevant. Every day you have to do something new. Well, I read, of course. I'm learning other languages. I communicate with other developers. I develop various web services in a team with friends, without salary, just for fun. And I rest more whenever possible, this is also necessary, so self-development goes easier and faster.

Top 3 books for beginners
  • Mark Summerfield - "Python 3 Programming: The Definitive Guide"
  • Wesley Chan, Paul Bissex, Geoffrey Forcier - “Django. Web application development in Python”
  • Robert Martin - “Clean Code” - Read it even if you don’t understand Java, there’s a lot there that’s simple good advice. And at the same time you will start learning Java.

Alexey Pajitnov is a Soviet and Russian programmer who created a popular video game called Tetris, winner of several honorary awards in the field of programming and computer game development. After receiving higher education At the Moscow Aviation Institute, he worked at the Computing Center of the USSR Academy of Sciences, where in 1984 he completed the development of the Tetris game. The game began to bring in its first money in 1996, when Alexey and Henk Rogers (an investor who owned large shares in Tetris and spread the game around the world) founded the Tetris company.

Alexey Pajitnov - biography

Born on March 14, 1956 in Moscow. IN school years He studied well, but had constant problems with discipline. As Alexey himself recalls, as a child he was full of energy and could not obediently sit through lessons, so he often received comments in his diary for his behavior. However, nothing remarkable or surprising: many have gone through this. Pajitnov always did well in mathematics, so after finishing the fifth grade he transferred to Moscow Mathematical School No. 91, which he later graduated with honors.

Introduction to Programming

After graduating from school, Alexey Pajitnov enters the Moscow aviation institute, where he first became acquainted with computers and programming. Here he quickly became interested in program development and began to devote himself entirely to writing code for various purposes. Soon, the talented young programmer was invited to work at the Moscow Computing Center of the USSR Academy of Sciences. Here he was involved in one of the most important things - optimizing problems. artificial intelligence and development of speech recognition programs.

Routine everyday life at the Academy of Sciences was not sweet: from morning to night, Pajitnov sat in a cramped office, where there were several scientists at one desk. Alexey recalls that he sometimes left his workplace for the whole day, and then work at night in silence, when everyone has gone home.

Career after the creation of "Tetris"

In 1984, Alexey Leonidovich Pajitnov created the legendary game “Tetris”, which became almost the most popular in the world. In society information technologies Pajitnov becomes recognizable and popular. In 1988, in collaboration with Bullet-Proof Software, he founded the company AnimaTek, which develops games. The corporation flourished exponentially, and already in 1991, the inventor of Tetris, Alexey Pajitnov, moved to the USA.

The creation of Tetris - how was it?

In the 1980s, at the Computing Center of the USSR Academy of Sciences, young scientists spent days on end in their laboratories, solving boring and non-trivial problems. One of these was Alexey Leonidovich Pajitnov, who at that time was developing a speech recognition program and also studied the problems of artificial intelligence. The responsibilities assigned to the young programmer were incredibly difficult; Alexey constantly had to create extremely complex algorithms that were beyond the capabilities of the average mind.

With a large knowledge base at his disposal, Pajitnov decides to create an interesting puzzle that will attract both adults and children. “Tetris” is far from the first invention of the talented programmer. Initially, he created a game where the figures had to change their location under the influence of the gravity of other objects. Approaching the completion of writing the code, Alexey realized that such a game would be too much for the processor of an ordinary computer, so he had to simplify some of the intricacies of the program.

As a result, he creates a game where the pieces (like in Tetris) consist of five squares, the goal of which is identical to the future Tetris game. Unfortunately, the public did not like such a creation, so Pajitnov decides to further simplify the game, where each of the 7 existing figures consists of four squares.

Only seven figures, and world fame is in your pocket

Have you ever wondered why the game Tetris has such a name? And why are there only seven figures in it? The thing is that the game was originally called “Tetramino”, where “tetra” translated from Greek means the number “four”. With the increase in popularity, the users of this game themselves gave it a simplified name for easier pronunciation.

In one of his interviews, Alexey Pajitnov explained why there are only 7 pieces in the game:

“There are only seven figures involved in the game, and this is actually luck, because the number 7 is the size random access memory the human brain, that is, what a person can remember. A 7-digit phone number is much easier to remember than an eight-digit number. A team of seven people is the maximum that can do without a boss or foreman. In a group of eight or more people, where there is no leader, it is impossible to work harmoniously and in a structured manner. In such a team, constant disagreements and contradictions will arise, regardless of whether you are friends, comrades, or just acquaintances. I draw these conclusions based on personal experience.”

Motives for creating Tetris

The Tetris game was created so that people would have fun and be able to relax from routine and everyday responsibilities. Pajitnov always said that the best alternative for relieving stress, besides sports, is computer games.

Video Game Lightning Glory

After completing the writing of the Tetris game, for the first couple of weeks the employees of the USSR Academy of Sciences, where Pajitnov worked, were captivated by it. When the game became available to everyone, the fame of the entertainment product spread throughout all cities in a matter of days. Within a couple of months, the whole world was playing Tetris. At this moment, Alexey Pajitnov, together with his colleagues, decides to create new version games where the figures will be multi-colored, and statistics of records will also be kept so that people can compete with each other.

While the whole world was enjoying the game, Alexey continued to live an ordinary life for many years and work at the Computing Center of the USSR Academy of Sciences. The fact is that he did not have the opportunity to monetize the game, because the rights belonged to the Academy of Sciences. This was explained by the fact that the game was written during working hours on a work computer.

Alexey Pajitnov: the state of the creator of the game "Tetris"

As you know, in 1996, Pajitnov began working for Microsoft, where he developed a series of puzzle games called Pandora’s Box. He worked here until 2005 and during this time managed to acquire several large shares from this company, which to this day bring him a certain percentage. Alexey himself does not consider himself a millionaire. In one of his interviews, he said the following: “A millionaire is one who spends millions, but not one who has a million. I live a fairly modest life and don’t throw money around left and right, so I would never call myself a millionaire.”

Computer addiction - the fault of developers or users?

IN modern world many people get too involved in video games, thereby creating problems for themselves Everyday life. They become psychologically attached to computer games and the Internet and can devote their time to sitting in front of the computer for days on end. The age of information technology has significantly changed people's consciousness. Pajitnov was once asked how he could comment on this situation, to which he replied:

“People often tell me that I stole a lot of their time when they find out that I am the creator of Tetris. I always ask them: “Was this time good or bad for you?” They all unanimously answer that it’s good. So that means I gave this time, and didn’t steal it.”

The first thing you need to understand is that site is different from site to site. If we compare website development with construction, then there are “gazebo” and “hut” sites, and there are “skyscrapers” or large “shopping centers”. The more complex the site, the more expensive it can cost an amateur who can easily cope with simple tasks for small sites.

We will talk about the requirements for a single programmer responsible for a small online store (30-3000 product cards, 1-10 orders per day). This specialist must be a generalist, that is, equally familiar with both the backend (server-side development) and the frontend (development on the user’s browser side).

1. Minimum requirements

If the online store already has a website, then the candidate’s resume should contain all or almost all of the technologies that are used on the site. You can check the list with the developer.

If a company is going to develop a website from scratch, then the programmer must know:

  • one of the common languages: PHP/Python/Ruby/C#;
  • one of the DBMS: MySQL/PostrgreSQL/MSSQL/Oracle/MongoDB;
  • one of the common content management systems (CMS): Bitrix, UMI, Drupal, ShoppingCart, WordPress;
  • have the skills to administer Linux and web servers, for example, one of Nginx/Apache/IIS or have experience in hosting web servers in the cloud platforms AWS, Google Cloud, Azure.

The lack of these skills does not mean that he is an amateur. He's just not right for you.

2. Correspondence acquaintance

Signs of a weak programmer can be identified even before the interview using a resume by examining the portfolio. If the programmer has indicated his works (websites), then you should open them in Google Chrome, go to the “Additional tools” section of the browser menu, select “Developer tools” and open the “Console” tab.

Then go on a “journey” through the site as an ordinary visitor: open several pages, try asking a question through the feedback form or filling the order basket. If errors appear in the console, they are automatically highlighted in red, this is a bad sign. It may not be the fault of a particular developer if he worked in a team, but this does not look good on the team as a whole.

The absence of a portfolio or refusal to demonstrate one is a sure sign of an inexperienced developer.

3. We swam, we don’t know

Naturally, great importance has practical experience. If during an interview, in response to questions about past developments, the candidate “floats” and cannot explain his own actions, you should be wary.

For example, a programmer talks about developing a system using MySQL, but cannot name alternative technologies and the reason why he chose this one. At the same time, even the option: “I just know her better” is suitable as a “correct” answer.

A competent specialist will be able to talk in detail about his developments and explain why he used specific technologies.

How to check: ask the programmer questions about the details of past projects and ask why development was carried out the way they were. If the candidate cannot answer clearly, there is a chance that he is taking credit for the work of the team or other colleagues. At the same time, the site owner does not need to understand the intricacies of programming; it is enough to ask clarifying questions.

4. Bird tongue

Another important point is the candidate’s ability to speak “human” language. Good specialist can explain his work in simple words. But if the applicant speaks exclusively in terms, it will be difficult for him to interact with colleagues and the owner of the company.

How to check: ask him to tell about some mistake for which he was reprimanded by management. For example, the “feedback” form on the site did not work for 2 weeks. Imagine this is your website.

Clarify what the error was, how he found out about it, how he found the cause and eliminated the error. If the applicant talks in “abstruse terms”, ask for clarification. If you are still not satisfied with the explanation, it will be difficult to work with it.

5. "OpenSource"

Many experts publish their own developments on GitHub (or BitBucket). If a programmer has several public projects and, moreover, they have been marked or copied (fork) by other users, this is a significant plus. A large number of copying speaks of high level professionalism.

A programmer of the level of Dan Abramov will look for large company, level (he works there now), but if your candidate has projects with non-zero grades and the “green area” is also filled, great! Feel free to call him for an interview.

How to check: ask the applicant to send a link to his GitHub (BitBucket) account and list the projects he is proud of. Pay attention to the “age of the account”, the number of projects and the number of code copies by other users.

6. Old luggage

A competent specialist must monitor the emergence of new tools and technologies. It's one thing if a programmer is forced to work with a website written in outdated language, another is when he takes an overly conservative approach.

Modern tools can significantly reduce development time. By the way, chasing and unreasonably introducing everything new is also bad.

How to check: Ask what tools or technologies the candidate has learned in the last year or two and how they have helped him in his work.

7. Prices through the roof

Naturally, the work of a good programmer is not cheap, but there is no need to rush to outsource development to the most expensive specialist on the market. If a candidate immediately announces the cost of developing an entire website, without clarifying the requirements for it, this is strange, to say the least.

For simple tasks like “changing the color of a button” or “creating a sitemap,” you should expect quick answers – “it’ll take 5 minutes” or “I can do it in 2 hours,” respectively.

In addition, you can get estimates of cost and execution time from several specialists and compare them. If a five-minute task takes a programmer an hour, most likely he is unprofessional or is simply stalling for time to earn more.

How to check: ask the candidate how long it will take him to change the color of the “Buy” button in the online store and make a site map.

8. Handmade

There is a joke that a good programmer is a lazy programmer, but there is some truth in it. Competent specialists write code in such a way as to minimize not only the efforts of those who then work with the program, but also their own. They try to use someone else's ready-made code (OpenSource) and there is nothing wrong with that.

If a programmer does not know how to optimize his own work, he will spend a lot of time and the employer’s money on the same type of tasks.

How to check: clarify how the programmer approaches creating code, ask for an example. It’s good if initially he looks for a ready-made solution, and if there is none, he writes the code himself. You can, for example, ask a programmer how he will develop a calendar that may be needed on an order form to select a delivery date. A good answer is to find an off-the-shelf component.

9. Extra Twins

Duplicate code is a sure sign of an inexperienced programmer.

Let’s take, for example, the “feedback” form on the contact page, which needs to be placed in the catalog and on product cards. If a developer simply copies part of the code and pastes it into the required pages, the professionalism of the specialist leaves much to be desired. Because when you need to make adjustments to the feedback form, at best you will have to do triple the work, and at worst, the programmer will forget to change one of the codes.

An experienced specialist will write a function that will load the “feedback” form on different pages from one source. Thus, if it is necessary to adjust the code, the changes will automatically appear on all pages of the site where it is provided.

How to check: ask the candidate if he duplicates the code. It’s not an amateur who will say “yes, it happens,” but will explain this by the irrational expenditure of time on getting rid of duplicates. If the answer is no, then the programmer is lying, didn't write much, or is a perfectionist - any of these explanations are a bad option.

10. Cut to the quick

In a good way, the programmer should make a copy of the site, test the changes on it, and only after checking the changes transfer them to the main resource.

How to check: Ask the candidate how he updated the website at his previous job.

11. Trusts, but does not verify

Any changes to the site must be tested. In large businesses, the problem is solved by testers, but in medium and small companies it falls on the shoulders of the developer.

Without checking the functionality of the site after changes, many errors may arise that users will find. Problems will drive away potential customers, which will negatively impact the company's profits.

It is important that the programmer checks not only the functionality of the site, but also tests it for errors that users may make. So, when developing a feedback form, you need to check not only its correct submission, but also the site’s response if the fields are filled in incorrectly. For example, check that if a phone number is accidentally entered into the “Email” field, an error message is displayed to the user.

How to check: If you have doubts about the programmer, test the site yourself. Let’s say, after integrating the site with payment systems, try to pay for the order, for example, through Yandex.Money. Everything should go smoothly.

12. Smile and wave


The current pace of making changes to the site does not allow us to eliminate all errors; it is very expensive and slow. Therefore, a competent developer sets up a monitoring system and finds out about problems before users inform him.

It’s bad if the programmer takes a long time to fix problems or ignores them. A good specialist understands his code and, if problems arise, can quickly determine the cause and fix it.

How to check: ask the programmer to tell you how he learned about errors in previous projects.

Working in the West attracts many of our compatriots who have professional knowledge in the field of programming and want to realize their potential in Europe or North America. I remember that the author of these lines once went to study abroad for two years under a student exchange program. If I had a chance to talk to people who had already studied there before me, it would have been much easier to adapt. And the question of whether to leave or not would raise fewer doubts. Therefore, today we ask questions to Andrey Shulinsky, a man who worked as a programmer in Russia and left for Toronto, Canada, to continue his work there. professional activity...

Interview

Alexey Perevertailov: Fortunately, we know you personally, we’ll immediately switch to “you” and a less formal format of conversation. The first question is when did you leave Russia and what were the motives for such a generally serious step that for many people requires much thought?


Andrey Shulinsky: My departure is quite Long story. The decision was made after the infamous 1998 banking crisis. For a number of reasons, the immigration process took a long time, I passed the interview in November 2001, and received a visa in December 2002. It was expiring in February of the following year, so I immediately went to Canada for a couple of weeks and registered there Required documents and returned to Moscow. He finally moved to his new homeland in October 2003.
Why did I change my environment? I probably won’t say anything new. Hoping for better professional prospects. I always strongly disliked many features of Russian life: everyday rudeness, dirt, instability. The mentioned crisis was a very strong blow for me, beautiful illusions were shattered... I also really love to travel, which is much easier to do with a Canadian passport.


Alexey Perevertailov: Did you manage to find a job right away? What kind of offers were there that you considered, and what were the requirements for applicants?

Andrey Shulinsky: I received my first contract in November 2003. My friend helped. The project was small, but quite interesting and helped a lot both psychologically and professionally. “I stretched my muscles” before more serious work that found me at the end of January 2004.
The requirements, with the exception of the notorious North American experience, are quite ordinary - in a nutshell, “knowledge of the subject.” :-) Unfortunately, many companies and recruiters really do not like to work with recent arrivals, while others, on the contrary, take advantage of the willingness of new emigrants to agree to any conditions. I won’t say that this is a widespread practice, but it is not so rare.
This cup passed for me, although I was already ready to go scan the documents. In general, I have always prepared myself for the fact that it will not be easy and that I may have to do something that is not my favorite thing. I submitted my resume to all positions for which it was at least somewhat relevant.


Alexey Perevertailov: What field of programmer are you? What diplomas and certificates do you have?

Andrey Shulinsky: I am a typical general application programmer/analyst/architect. He graduated from the Department of System Programming of Computational Mathematics and Computer Science of Moscow State University, but in his life he has never written a single line of “system” code. :-) I used to write in C++, but switched to Java a few years ago. I worked in the banking sector for a long time, then there were a couple of telecommunications projects. In Canada, I first made a document storage and processing system for a marketing company with the sonorous name Arnold. Now I work at the Novator company, creating a Java version of the engine for sites engaged in online retail sales.
I have only one diploma. Received in 1996 from the Faculty of Computational Mathematics and Cybernetics of Moscow state university. Before leaving, I passed the Sun Certified Java Programmer, 1.4 exam. I planned to get the rest of the certificates in this line, but I work a lot and can’t find the time for it.



Alexey Perevertailov: In general, can you say which programming languages ​​and which programmers are now more in demand abroad, and in the world as a whole?

Andrey Shulinsky: First of all, .NET and J2EE. What did you expect to hear? ;-) These 2 platforms cover the sky... However, judging by the advertisements on job search sites, there is still a certain demand for experts in C++, Cobol, Perl. Sometimes there is a need - and even very - narrow specialists who know some kind of "sophisticated" SAP. But, of course, the bulk of programmers and other senior developers are “javistists” and “dotnetters”. :-)


Alexey Perevertailov: From your own experience, tell me - is there competition between programmers within the company? Are there any hard and fast rules? Why can they get fired? Whether there is a career? Does overtime work happen and, if so, how is it paid? You worked as a programmer in Russia, you can compare, so the question is: what differences have you noticed in the professional requirements and organization of the work process at home and abroad? Was it difficult for you to find a common language with the project manager?


Andrey Shulinsky: In those companies where I had the opportunity to work, there was no obvious competition aka “social competition”. :-) But at the same time, a simple law applies: if you work well, they will notice and appreciate it. At least that's how it was with me. And the salary was increased, and more interesting work was entrusted.
Of course, they can fire you. Basically, this is due to problems of the company (downsizing) or a clear discrepancy between the person’s capabilities and the position held. The probationary period, so disliked by many, can be useful. So don’t exaggerate your interview capabilities too much. There are also cases of dismissal due to illegal activities of an employee.
Regarding the issue of strict rules - you should not store gigabytes of child porn on the hard drive of your work computer - you can be punished. All contracts contain more or less standard clauses about non-disclosure of information, the company's intellectual rights to your code (a dubious asset, IMHO :-)). It is often prohibited to move to companies operating in the same industry or to earn extra money on the side. The degree of such paranoia depends on many factors. Large banks and other “cool” companies force people to sign 8-page lists. But the same thing exists in Russia, it’s just that here, I think, they monitor the fulfillment of these conditions somewhat more strictly.
Professional requirements in Toronto and Moscow are the same. I suspect that they coincide with the requirements of London and Tokyo firms and are close to Parisian requests. The difference is that in France you may need French. It can, but it shouldn’t - I talked with recruiters who were recruiting people to work in a company located in Lyon. I honestly admitted that I don't know French even with a dictionary. “Oh, all the paperwork is in English,” was my answer. :-)
The organization of the work process very much depends on the people leading the project. If they set things up well from the very beginning and do not allow the project to go awry even during emergency times, then the work goes quite smoothly. Otherwise - the usual mess. Dear readers, you have probably already guessed what happens more often. :-)
There have never been any problems with project managers so far. I have always easily found a common language with people - both in Russia and in Canada. You probably noticed how often I repeat the words “the same,” “the same,” “there is no difference.” Indeed, I discovered that Russians and Canadians are not as different from each other as is commonly believed. Of course, translation difficulties exist. But, as in one wonderful film, they are mostly related to the individual characteristics of people, and not to “civilizational” differences. This is how I got it “IMHO”. :-)


Alexey Perevertailov: Are programmers in Canada a highly paid profession relative to others? If we compare this ratio with Russia, where is it better to work as a programmer (in terms of financial benefits)?

Andrey Shulinsky: Yes, salaries are still above average. The competition has become greater, but the pay is still good. However, this is only a subjective opinion, and I have been in Canada for less than two years. :-)


Alexey Perevertailov: Where do you think it is easier to improve your professional level - at home or abroad? Does it generally depend in some way on the country (or rather depends on the specific person)?

Andrey Shulinsky: My opinion is primarily from a person. Who seeks will always find useful books, magazines, forums and, of course, those with whom you can communicate on professional themes. Of course, I'm assuming that you work in a country where the IT industry is well developed.


Alexey Perevertailov: What tools do you use (development environments, etc.)? I assume that in Canada all the software used by software development companies is licensed or not?

Andrey Shulinsky: Let's just say that most of the programs are either purchased or received for free. :-) Sometimes people put something obtained illegally, but this is done specifically for information purposes - if it is not available trial version. Companies either prohibit the use of pirated software at all, or force you to sign a document according to which you yourself are responsible for the contents of your hard drive.
A variety of applications are used. IDE: Eclipse, IDEA, NetBeans. Database tools: DbVisualizer, Aqua Data Studio. The code and documents are stored in CVS. From the purchased one I dealt with WebSphere. All the faces are familiar, aren't they? :-) And, of course, .NET - there are solutions for all occasions.


Alexey Perevertailov: Can you remember any funny or curious incidents at work?

Andrey Shulinsky: Please. The boss just asked one of his colleagues how long ago he updated the code. “Uh-uh.... three days ago...” - a menacing look - “mmmm... maybe two” - a menacing look - silence - I prompt: “one, otherwise the deal will fall through” - the situation is de-escalating. :-)


Alexey Perevertailov: I would like to ask you a few general questions, if you don’t mind... Do you think it’s realistic to organize your own business abroad? In the case of a programmer - create your own commercial software product and sell, develop, support it? What do you think is needed for this?

Andrey Shulinsky: My opinion is yes, it is real. Here, an entrepreneur does not have to fear racketeering from bandits and authorities; registering and running his business is quite easy. But, of course, without the two main components of any success - a good idea and the willingness to devote all the time and effort to its implementation - nothing will work. The “ideological workaholic” has a chance. An example is the president of my current company, who wrote the first version of the system in the basement of his house. :-) Now "Novator" is doing well.


Alexey Perevertailov: What is your attitude towards the Open Source community?

Andrey Shulinsky: Of course, positive. I consider the work of this community a huge boon for progress in general, and the main reason for the success of Java technologies in particular - which also clearly benefits the industry. It is unlikely that it would be possible to successfully compete with the famous monster otherwise. :-) Of course, there is a certain risk in using Open Source products. At the same time, many such solutions have an excellent reputation and have been on the market for many years - and you don’t necessarily need to know their “internals” thoroughly. The society will help solve almost any problem, which not every commercial support service does.


Alexey Perevertailov: How do you feel about patent law in the field software? Is it stifling progress? What do you see as the best mechanisms for protecting software innovation?

Andrey Shulinsky: Unfortunately, I am not ready to answer this question. This is a fairly serious topic, the material on which I do not know well enough.


Alexey Perevertailov: In your work you have to deal with searching for vulnerabilities in created product? Nowadays, a lot of attention is paid to writing safe code, which gives less chance of using various buffer overflow errors, etc. In your work, do you monitor potential code security? Do you have any instructions on this matter?

Andrey Shulinsky: Testing, only testing - and testing again! I consider unit testing to be a key tool for ensuring code security. As a rule, all software development companies try to create and maintain a set of tests. Unfortunately, this is rarely possible - mainly due to tight project deadlines. But the long-term effect of competent testing can hardly be overestimated. As a result, by a certain date, it is not Galatea that comes out of the hands of the sculptors, and finishing the application to a somewhat stable state takes a long time, causing stress for the entire team.
Coding discipline and building good architecture are also very important. Personally, I learned a lot from the books of Martin Fowler and Rod Johnson.


Alexey Perevertailov: Well, finally, this question - if there was a hypothetical opportunity to start all over again, would you still become a programmer?

Andrey Shulinsky: Yes. It was this specialty that helped me move to another country almost painlessly, overcome the usual emigrant psychological and financial problems. My qualifications and professionalism are in demand, my colleagues listen to my opinion, I belong here, even though I still know English language worse than Java. :-) Besides, I really love my job. Anyone who has been involved in programming probably remembers the moments when a program begins to work the way you intended. I am still truly happy in such moments.
And further. I am very grateful to my parents for their enormous help in choosing professional path and standing on it. Not everyone manages to find _their_ business. Without their participation, I would hardly have succeeded.
P.S. Of course, it also helped that I was so smart and handsome. :-)


Alexey Perevertailov: Thank you for your answers, we wish you every success in your professional activities!

Andrey Shulinsky: Thank you, good luck to you personally and to the F-Center as a whole. :-)
Loading...