"The devil pulled me to go to work in the office" - 10 questions to the programmer, 9 release
Somehow it happened that almost all eight issues we spoke with office developers, and did not ask what life is like in freelancing. Today, finally, correct. Says Denis Kazakov ( nrcpp ). He wrote the first program at 14 on Pascal, and at the university he developed his C ++ front-end compiler and tore an article on this karmic jackpot on Habré.
Kush is more realistic on Upwork - 60 completed projects and a tidy sum (well, for me) in the graph of the money received. But under the cat no boasting and motives in the spirit of "you too can." On the contrary - a story about a bitter for an experienced freelancer office experience.
1. Tell about the feature that you have implemented and that you are proud of.
The first "feature" was the first semester in the university. I came to the university already prepared and passed the session automatically. He could not appear at the exam, but classmates asked to stay and stand in the corridor, help if that. After 15 minutes from the beginning of the exam, almost the entire group took turns “wanted to go to the toilet”. And this is about 25 people.
Each carried out one leaf each, then two. Everywhere, with nervous handwriting, something like “Fold 2 maximum elements in an array” or “Find an element in an array larger than X” is scrawled.
An hour later it was a whole conveyor. Two piles grew next to me - in one all new and new leaves, in the other - already solved tasks. One person went out, carried out a new “party” and took the ready-made decisions. Thus, the whole group passed the session on 4 and 5. Since then, we have been friends.
The second feature is my own C ++ compiler, which I wrote almost the entire term of study at the university. Since then, I have not been able to pull my own project alone on the enthusiasm alone. Where do people get strength for their new projects?
And the third project is the usual test for vision. I created it starting with “File -> New Project” and ending with sales. But the real thrill is that you see how people use your brainchild, and it helps them to identify health problems.
2. And now - about the most cruel fakap
I didn’t work at Google, I didn’t write software for surgeons and rocket science, so I don’t remember bright fakaps because of my code. I'll tell you better, how I profakapilsya to be a team leader.
After many years of freelancing from home, the devil pulled me to go to work in an office, to a large outsourcing company, with an even larger customer (one of the world leaders in the industry). The situation is stressful for me, I used to not really work in the office, and then organize a crowd of people. First there were 6, then 10, then 18, and at the end it was 25! I did not count on such a den. On the remote, because every man for himself. I took the card in Jira and sawed myself silently. And you want not sawed.
Here it will not work. At 10 am, stand still and be kind, say "I work on my task" on a stand-up. At 4 pm phoned the customer. You say the same thing, only in English. In between these two occupations, you are pulled by the junas, interns, accountants, cleaners. Of course, responsibility for everything is on you.
In general, I began to feel that I was not coping, and such an organization of labor is not for me. I lost my interest in work, but kept my salary and willpower in the spirit of “you can!” Don't do that.
When a team leader has no interest, there is chaos. One June took up 50% of the tasks, simply because he was sitting next to me in the openspace. Another intern took a critical stand-alone module, which was completed by almost the entire team.
I fell for a month due to health problems, and when I returned, the project ordered “to live long”. A team scattered on other projects of the same customer. After a while, I returned to my usual freelancing.
3. Describe your working space: from the chair and monitor to programming environments and favorite utilities. And attach screenshots if you can
A big table is a guarantee of productivity, I think.
Iron is completely changed every 5-6 years. Now I squeeze out a maximum of the second-generation i5, with an SSD for 500 GB + old HDD, and 16 GB RAM DDR2. It’s been a long time to scratch your hands, especially when the percent is overheating. But whether the toad presses, or it is easier to change the thermal paste. This summer, with a creak, I switched from Windows 7 to the top ten, since under Xamarin it is easier to write on it.
There is also a MacBook Pro 2011 late for iOS projects. Hazardous frying pan due to age. Again, the dilemma is whether to set aside money for an apartment, or whether to buy a new MacBook, which “does not bake”.
From the bodies - from the 99th year of Visual Studio. And with each new version I am convinced that nothing else is needed. A couple of very small extensions, like Ctrl + Click to go to the method declaration, and to the battle.
For Git, SourceTree. For testing on different OS - VmWare. Sometimes they ask the installer to do it - for this Advanced Installer. Everything else is done either on the web or in notepad.exe. When Java was needed, IntelliJ.
4. On what basis do you choose a job? Stack, product, living conditions, money?
If there are orders for freelance - you are on the horse, there are no orders - you are ready to harness for food 24/7. Thank God, these times are five years ago. But it happened that the students from India cursors did, and the other dumb Malvari were asked to write. Now I am working on what is interesting. For example, recent projects are web automation and NLP.
I am 32, and now I am less enthusiastic in fitting into some newfangled trends. My ideal office job is somewhere in five meters from the house, better on the next floor. Its own private office, with a comfortable table, chair and iron. And the technologies that I know. Maybe another 10-20% of the working time when you can experiment with new ones. However, I described how I work today.
About the product is not always possible to find out if it is about outsourcing. But if there is a zoo of different technologies, ranging from Fortran and ending with Go, then probably not.
I usually ask for money just above the market, but this is not critical.
5. What would you like to fix in the technologies and languages you use?
The first thing that strains your teeth is the lack of cross-platform UI for .NET. Or for simplicity - WPF for macOS. The second point is the quality of the project itself Xamarin today. Especially the speed of assembly and deployment of Xamarin-applications, constantly flies Xamarin XAML Previewer, for unknown reasons, errors that disappear only after restarting the IDE.
As soon as I sat down to write my first serious application on Xamarin Forms (Forms is the bottom, I know, but there was no choice), I was just crazy about the number of tambourines that are needed to get the application out of the box for iOS / Android. Now completely updating the third-party software on which Xamarin depends - the situation has changed.
I would like to create a skeleton of the program in several lines. Like described the domain model, and IDE generated ViewModel, mocap UI, classes for working with configs, logs, exception interception, DAL, BAL, SAL - that is, wrappers around the API.
It seems to be, like scaffolding, in ASP.NET MVC, or was similar, in the late LightSwitch. But in the complex, as I described, so that everything was generated together - no.
Each new project, in most cases - is a copy-past code. Then linking the components of the new codebase to each other, through layers of abstractions.
I think the situation will change very soon, and we will generate 90% of the application code in a few lines of DSL. Although attempts to “silver bullet” do not stop since the creation of the first program.
6. Where better to adopt someone else's experience - in high school, at conferences, at Habré? Somewhere else?
Take it and do it. Just write the code. But in general, to each his own. For example, I caught fire to write programs, as in films about hackers. I went to the courses on Turbo Pascal. Wrote the first program that adds two numbers. I launched and dragged me thirty kilometers through all the portals of the universe. And then I realized that it was mine.
The second and third programs were already harder to master - there were if and while. And the more I did not go to the courses. But the desire remained. And since there were no experienced colleagues, and subsequently teachers, I was just buying books. Rewriting program listings and bought again.
Then he began to invent something of his own. I thought of writing my own C ++ compiler. Three years have passed. And I was ready for the project in real conditions, for which they pay money. Project after project, being improved along the way, grew to Microsoft MVP, MCP and completed 60 projects.
But to write exploits, as in the movie "Hackers" has not learned.
7. If you had unlimited resources (time, money, power, people), what project would you do?
You know, I would like to create a system that would change the approach to development radically. Rather, to the very process of writing code.
Remember how the main character from the movie "Password" Swordfish "created his Khidr? Aki the shaman, waving his arms and twirling a cube-rubik. Or as in the movie "Iron Man". Yes, this is the Hollywood standard - waving your hands on a translucent screen, folding the cubes. I would like to create such a thing and put it to the masses.
By the way, in all seriousness, I already invested in a similar tool for programmers that worked on the iPad. But apparently 3 freelancers and $ 20,000 are not enough for a revolution in programming.
8. How do you relax? What are you doing besides work?
When people ask me about hobbies and free time, I fall into a stupor. Immediately imagine the interlocutor in a ski suit, famously descending from the Alpine mountains. Or a traveler in the forests of the Amazon.
I have no definite hobby. Previously, he played football professionally, until the age of 16 he was the captain of the junior major league team. And then I wrote the first program ... Now I like to watch quality matches, occasionally I go out to run myself.
I like to walk alone in the city center. To learn a new technology, but the fuse lasts for two or three weeks. Go to some completely treshovy site, like leprosy.
Last time, trying to figure out how to create a video. Created YouTube channel, where I talk about freelancing. While this is more of an experiment.
And so, I have two small spingroses and a wife who do not let me get bored.
9. Tell about 3 favorite books - educational, popular science and art.
Educational and popular science - Donald Knut, “The Art of Programming” (1st and 3rd volume)
Art - Dunno on the Moon. I read at the age of 7, after it, I don’t remember anything to take up reading myself. Maybe Jobs's biography is still very gone. From the last one I read, Sapiens. Brief history of mankind.
10. If a consciousness wakes up right in front of you in AI, what will you tell him?
Well, first, I believe that mind and soul are one. And a pile of iron cannot have a soul by definition. Although my computer reacts differently, if you shout or praise it, for some reason.
But if hypothetically imagined that the AI adapts to the conditions of life on Earth, it will adopt people's behavioral habits, just like a child, when learning to walk and talk. Then, probably, I would ask how to cure incurable diseases and avoid wars, and then overpopulation of the Earth.
Question from previous hero
What would you do in an intergalactic expedition lasting several generations?
Of course I will code and automate the needs of the expedition.
And if you dream and admit that I am not getting old, there are no time and consumer frameworks, then I would strive to visit as many livable planets as possible. To exchange contacts with the inhabitants of Gliese 581g, drink a beer on Mars, run a startup on Andromeda, sleep with an alien.
Question for the next hero
What advice would you give yourself back 10 years ago?
- " I am a useless fool and want to quit "
- “ I can tell you about the common pain of all iOS developers ”
- “ Besides work, I still work ”
- «Мы это решение сделали, блин, в срок!»
- «Любой уважающий себя айтишник занимается технологиями и в свободное время»
- «Я три года борюсь с синдромом самозванца»
- «Хочу уйти с завода в веб»