Reliable JavaScript programmers
When I tried to hire a JavaScript programmer for Cloudera, I found this task quite difficult. It is very difficult to find someone who really understands JavaScript. No, this also proves a very simple thing. It is time to study JavaScript and become an expert in this field. In the past few months, I have discovered some talented JS programmers and tried to hire them. Obviously, they have many choices. They are plagued by the Offer of various companies. As a person who wants to recruit them, this reminds me of some things during the first Internet bubble. (I promised to give one of the candidates a Cadillac, but it didn't impress him ). Finally, he entered another startup company.
The key point is that as a JavaScript expert, you cannot only know JavaScript. if you want to be dedicated to a reliable front-end engineer, you need to do better in more aspects. Maybe these are not written in JD, at least those requirements are not as prominent as JS. You only need to understand some things, but others need to be proficient (obviously you need to be very proficient in JS if you want to be a real expert ). Actually, I am just an ordinary person. I have a blog and other aspects are similar to the average human body. But when I say my requirements to HR, HR tells me, "This person does not exist, you describe a Superman. "I told him that this is what I do every day. He insisted that "you are a great man"
People who can finally be called JavaScript experts need some technologies, what needs to be done every day, how to determine which are geniuses, cainiao, and average people, here is a list of my columns:
1. You Need To Know HTML, and you need to be very proficient in it.
You need to know the role and Effect of document types. You need to know that even if you do not write the TBODY, the browser will automatically add it. You need to pay attention to the changes made by the browser during each upgrade. Learn these things, at least here you have. Spend some time studying at work.
2. You need to understand CSS so that you do not regret it.
The most common problem I encountered during my work was cross-browser CSS compatibility. The same style is displayed differently in different browsers. You have added a negative margin-top value to implement typographical operations? Even if you add a z-index, you can see this damn thing. Or you add a set of CSS code that can be automatically adapted, but you have to pray that your boss didn't go to your webpage in IE. The most important thing is to understand CSS, which is the most valuable technology. You don't need to be very proficient, but at least you can do exactly the same as the sketch, otherwise you don't need to mention anything else.
3. You need to understand the browser. You need to understand that in IE browser, if you put "" In DIV, IE will not convert it into DOM elements.
But put it in the header, because it is read-only. You need to understand that adding a comma at the end of Array and Object will cause IE errors. You need to understand that the elements in iframes in IE may be offset. In addition, not only IE will have problems, Firefox will also have problems when clearing the floating, Chrome will be okay. You need to learn about the amazing features of the latest webkit on mobile phones and safari.
4. Have I mentioned JavaScript?
We need to know how JavaScript works. You need to know that the parameter (arguments) object of the input function has a length and can be enumerated, but it is never an array object. Further, you need to know how to convert it to an array. You need to know how prototype works, how to use it without using the framework, and what its role and advantages are. It is important to know when garbage collect works and when it does not work. You need to extract action ). You need to be very good at designing APIs for yourself and others. You need to know how to test and manage your code.
5. You need to have design capabilities: information flow, image design, user experience design, and code design.
You need to be able to ask users, customers, strangers, and experts (anyone else) correct questions and be able to solve their problems. Not only do you come up with your ideas, but you have to try to present them to them. You need to be able to use Illustrator to quickly assemble various wireframes into a solution, and then you can go to PhotShop (you need to be familiar with this) draw a picture of the design (visual style ). You don't need to be the best designer in the world. Neither do I. But you must be able to tell them what is good, what is bad, what is outstanding design. If you can manage your own designs, you will be good.
6. You need to be very confident in the server.
In fact, you do not write JavaScript every day. Most front-end jobs only require you to spend half of your time writing JavaScript. In addition, you need to process code in other related languages. python, Ruby, Java, PHP .. if you only speak one language, it is not worth mentioning. If you only use JavaScript and PHP, you will have some tasks that need to be used in other languages (in fact, this is a great opportunity to learn new things ). A framework should be used, but if you only know one, you are not really familiar with JavaScript.
7. There are many other things you need to know.
You Need To Know About Git. Git is awesome. I know that you often hear people say this. If you find a conservative person who refuses to learn new knowledge and expand yourself, you need to let him understand his mistakes. You need to know some shell scripts. Without notepad, TextMate, or other editors, you must be able to open VI or Emacs to modify a configuration file (conf ). You need to know how to compile something, how to extract a log file, extract a compressed package (tarball), encrypt something, enable and configure the service. You need the ability to shut down (kill) the process and track and debug a stack.
I am not even a programmer familiar with the agile development process, who has participated in open-source software projects or released new versions. However, if you think you can match five of the seven I listed, or match all. Congratulations, you are the legendary God.
So what do you get when you become a god? How do you know that it is worthwhile to deal with the boring IE6 bugs over the years? Well, what you get is that you will receive HR emails and phone calls every week. (This is not uncommon. They know your sales ). If you want to change jobs, you don't even need to do anything. Tell a friend or send it to your twitter, and then many of them will open up in front of you. You may have new friends who want you to join their careers. When you join, you will become the legendary elders. You will get the stock and design the initial version of a product. You will get a Cadillac in 1967 for the contract. At the very beginning of the company, I once tempted such a guy. Great God is a front-end engineer of a non-existing product. He points out that this item is worth a lot of dollars a year or two. After so many years, he can tell others, "this is what I did ". There are already some such people, such as Twitter, Facebook, Gamil, and Google Maps that have already been used by many people, such as Iphone interfaces, Github, and YouTube. Someone must say, "This is what I did ".