Creating software products is a style, it is the ability to think, to understand. Often programmers are associated with architects who build future housing for people that will be comfortable, high-quality, etc.
Once I encountered such a vacancy:
Job Text
Requirements:
Experience in search engine optimization sites (SEO).
Development experience using LINQ, WCF, WPF, Silverlight, VBA.
Experience with ORM-platforms.
Experience team development and use of version control systems.
Availability of certificates.
Good communication skills.
Higher technical education (information technology, information systems, computing systems).
Crossbrowser layout.
Excellent knowledge of XHTML / Javascript / CSS, Ruby on Rails, Perl, PHP, C ++, Java, SQL, Oracle Enterprise Database Management System, Microsoft SQL Server.
Graphic Pack Ownership: Adobe Photoshop, CorelDraw
')
Experience with various CMS (Joomla, Drupal, NetCat, WP).
Experience in development and confident knowledge of the .NET platform, the C # language, ASP.NET technology and ASP.NET MVC.
Experience in Visual Studio 2005/2008.
Excellent understanding of the principles of OOP.
Confident knowledge of the theory of databases, experience in database design, experience in working with industrial databases, knowledge of the SQL language and experience in writing queries.
Knowledge of the principles, approaches and architecture of building traditional telephone and IP telephone networks;
Experience of participation in projects for the implementation and maintenance of processing and transmission of voice information;
Experience with Cisco equipment (Catalyst, ISR / ISR G2);
Knowledge of Cisco Systems software (Unified Communications Manager, Unified Contact Center Express);
Knowledge of OS Windows XP / 2003/2008, AD, exchange, DNS, DHCP, Proxy, Firewall, MS ISA Server, Terminal Server, VPN
Turning up, I saw that the “Programming Assistant” was required.
To my question to programmer friends, how does it differ from the usual one (although, an unusual programmer is more appropriate here) I received the answer - by the presence of a beard.
Let's see: system administrators were able to separate themselves from programmers at least somehow, even though they sometimes perform the functions of the first, they still have their limited remit.
Designers in general have always existed as a separate line.
And programmers?
A universal programmer in modern society is a normal state.
Let's look at the requirement for a web programmer: PHP (4/5) / .Net / Python / RoR, HTML (HTML5), XHTML, CSS (1-3), JavaScript, OOP, MVC, the ability to work with Photoshop and the little things - I write everything from memory.
If the ability to work with Photoshop is often just a cut-paste knowledge, then php (or any other language) is a back-end programmer who works only with him, according to all modern theories of the same OOP and MVC.
Knowledge of JavaScript + HTML + CSS is combined in a logical sense, although there are separate Front-end programmers, and there are layout designers.
I don’t even think about mentioning that almost every programmer has administrative knowledge: setting up LAMP, WAMP, IIS for them is normal knowledge with the requirements of customers, and for their own improvement.
Now more
Let's take a look at javascript. This is my favorite language, so it is easier for me to consider it.
There is jQuery, which replaces almost most of the knowledge of the language. Yes, it is a powerful product that solves half the compatibility issues ...
But I often meet people who know JavaScript at the syntax level to work only with jQuery and, if problems arise, they simply get lost, swear and look for solutions on the Internet without the possibility of understanding and understanding the essence,
demanding solutions on their favorite jQuery.
There is no question of their understanding of such things as closures, borrowing and decoration.
They are simply users of the established programming process, which dumps their salaries, increasing demands, skills and knowledge.
Sometimes, I forget that I am writing under the framework, solving my problems in pure JS ...
Work searches
The time happened when I arrived after a long stay abroad and working there. I needed to look for a job in Russia.
I did not have a special binding to the city / country, etc.
I have a list of languages ​​in which I easily program, there is a list with which it is more difficult, but there is a list of languages ​​that I understand, I will find a problem or just read them.
I always indicate this in my resume in a detailed form.
I try to point out what I was working on, what was the project, etc.
The first thing that I encountered was the dismissal of inadequate offers and spam, or even banal scam.
In the majority, HR simply sees familiar words (“Java for mobile platforms (Android and BlackBerry) - medium level” - that's what I have written) and call for the position of Senior Java Developer.
The inability or unwillingness to read
Russian is no longer surprising to me, as well as at least trying to understand that PCs and Servers are not mobile platforms (although, with current trends, this opinion is gradually changing, but I still can’t imagine Windows Server with the Metro interface) .
Next, I had to sweep aside positions where the chiefs not only did not know how to behave with subordinates (from banal familiarity, to the point that they even “forgot” to introduce themselves).
I will remember the phrase for the rest of my life: "
I think that the salary of programmers all over the world is too high and they should understand what they are working for and be happy about the salary received " - this was said by the manager interviewing me to the position "C ++ developer" with obvious envy to programmers in the eyes - otherwise I can not explain it.
As a result, I got a job in the state structure on the recommendation (oh, yes - I'm without a higher education) for a decent salary.
I saw a terrible project. The report generation file occupied 27 thousand lines.
It looked like this:
//.... sharedStringTable81.Append(sharedStringItem1383); sharedStringTable81.Append(sharedStringItem1384); sharedStringTable81.Append(sharedStringItem1385); sharedStringTable81.Append(sharedStringItem1386); sharedStringTable81.Append(sharedStringItem1387); sharedStringTable81.Append(sharedStringItem1388); //...
The project was developed for the third year, changed 4 developers, and the last developer did not even remember about such a thing as outputting the variable as the result of processing (yes, the banal Response.Write (varname);). What to talk about, if in other languages ​​he was not strong ...
How did he work there? Yes, just a person was a pity to dismiss. Everyone knew about his abilities. I remembered more when he came to me with a question where I get the information (I didn’t know C # enough then), and Yandex, Google, MSDN got the answer ...
And the bottom line?
Looking into the past, I understand that I also studied programming, and I am learning now.
But I never said that I can do everything, really appreciating my strength, asking for appropriate, as I thought, salary.
Once I received an invitation to work abroad again. Front-end programmer. In Norway.
And I was very surprised that the salary, after taking into account expenses and approximate prices, was several times higher.
And then I began to understand: very few people need professional programmers - you should be able to do everything.
Yes, the more you know how, the more you have a choice, knowledge ...
Knowledge of other technologies and solutions is necessary, but doing work for everyone is truly the Russian mentality of the employer.
I understand that the level of entry into this profession is low, but the level of development to a professional exceeds the level of market requirements, therefore there are few professionals - this is a fact, not an insult.
Who supports this path? Yes all:
- employers who benefit from enikeyschiki;
- novice workers with no experience who do not want to be recruited at any seminars, independently or in practice;
- and even professional programmers who sometimes are too lazy to do work, degrading to informational hunters, bloggers and commentators ( let alone explain the ability to explain )
Conclusion?
And there will be no output. For each he is his own. For someone it is not.
For some, this is the cry of a runner and a madman ...
But you often thought about the phrase: "If you are so clever, then why so poor?"