Please ask the front-end Daniel to give me some guidelines, thank you.

  node.js, question

First of all, let’s talk about me. I studied electrical engineering and its automation in university before. Then I came out to work for a year and came across something about web design by chance. When I felt very interested, I started self-study. After half a year of self-study, I found a front-end job. At first I felt that I had learned a lot. I had a strong goal and knew that I had to learn JS, HTML and CSS. I could feel that I was making progress. However, I have been working at the front end for nearly half a year now. I feel that there is no room for any improvement in the current company. Instead, I feel that it is declining. . . This company he seldom involves some new knowledge of H5 and css3, using very primitive things. And now I feel I have to learn a lot to be a front-end. . It is no longer just learning JS, CSS and HTML, but also knowing network communication and background language. . . I suddenly feel that I have no sense of direction and do not know how to start. . . I feel confused and don’t know how to further improve. Daniel, how did you all experience this? Can you give me some advice? I want to know what skills and knowledge the front-end should have at each stage. If you want to learn about network data exchange, you have to know what kind of knowledge to learn. Is there any good information in this area? And do you still need to know some knowledge about database operation? As for the back-end language learning, which is better Java? C plus? PHP? node.js? Or speak some other back-end language. There are still some frameworks to know. I am familiar with JQ at present. For example, angular.js and Bootstrap don’t know much about it. Now I suddenly feel that I have too much to learn and don’t know how to proceed step by step. . .
Finally, I would like to ask Daniel how to optimize his own code. Now I write code like jq and feel like I’m going to vomit.

var dwid=dwid ? dwid : '';
            var data={
                "dwid":dwid
            }
            var brx=JSON.parse(localStorage.getItem('brxx'));
            var url={
              "dwbk_cx":"/service?wdService=dwbk_cxSpt"
            }
            axs(url.dwbk_cx,data,bklm_fn,'post');
            var href_bk=window.location.href;
            var oHref=getParams(href_bk);
            function bklm_fn(data){
              console.log(data)
              if(data.msg=='10004'){
                var obj=data.data,str='<li class="nav-item"><a href="index.html">首页</a></li>',str_more='',child_str='';
                 if(obj.length>=8){
                   var obj_length = 8;
                 }else{
                   var obj_length = obj.length;
                 }

                for(var i=0;i<obj_length;i加加){
                  child_str='';
                      if(obj[i].bkbm=='ZXFU'){
                        console.log('fgf')
                      $('.conts p:lt(3) a').attr('href',obj[i].bkurl加'?dwbkid='加obj[i].dwbkid加'&bk=bk')
                   }
                  if(oHref.hasOwnProperty('dwbkid')&&oHref.dwbkid==obj[i].dwbkid){
                       var ms='<div style="margin: 1px 0px 4px 0px;"><p style="padding: 6px 4px;border-bottom: 1px dashed #ccc;line-height: 150百分比;font-size: 14px;color: #666;"><span style="color:#D22E71">栏目说明:</span>'加obj[i].ms加'</p></div>';
                       $(ms).insertBefore('.ss');
                   }
                   var cHild = obj[i].childList;
                   console.log(cHild.length)
                   if(cHild.length>0){
                      for(var j=0;j<cHild.length;j加加){
                          child_str加='<li class="nav-item"><a href="'加cHild[j].bkurl加'?dwbkid='加cHild[j].dwbkid加'&bk=bk">'加cHild[j].mc加'</a></li>';
                      }
                      child_str='<ul class="child">'加child_str加'</ul>';
                   }
                      str加='<li class="nav-item"><a href="'加obj[i].bkurl加'?dwbkid='加obj[i].dwbkid加'&bk=bk">'加obj[i].mc加'</a>'加child_str加'</li>';
                }

Feel it, I feel so confused myself. . Daniel, what are the good ways to make the code elegant!
Moreover, I think it feels good to use js to assemble character strings and then print them out on the page, which is both low-level and poor in portability. . . Although I know there are such problems, I don’t know how to solve them. . .
I hope the great gods can give me some guidance and I am very grateful! !

Electrical engineering and its automation, I am a Electronic Information Engineering Technology major.

Talking about my experience may be of some inspiration and help to you.

First of all, I am also a self-taught programming, of course, I will learn some basic programming related in school, such as assembly, C language, and hardware related programming.

I also came across the real meaning of programming by chance (I personally think that I have been outputting the results on the console before, which makes me feel boring and not challenging). It was a preparation for the competition. The teacher wanted to write a communication interface for the upper computer. He planned to write it in VB. He asked me if I would. Of course I won’t.
But when I got down, I went to the Internet and found out that the situation was getting out of hand. Only then did I know that writing programs was not just a game in inside, the console. Of course, I didn’t have a deep understanding of VB, because Microsoft introduced C# at that time, so I began to learn C#.

Because C# involves a complete system,. NET,WF,WPF,WCF. At that time, I practiced these seriously. Of course, at that time, I just played aimlessly. At that time, I often went to the library, borrowed a lot of thick The Red Book (black ones) from the library, came back and knocked on the computer desperately. At that time, I seemed totally immersed in them.

He was hit several times in the middle. First, the computer was stolen twice, which made me have to type the code again. The second is an interview (interview with training nature), three or two interviewers bombarded me in turn, which made me depressed. After coming out, a training person will give you all kinds of comfort (I believe many people have met). Of course, this did not stop me from continuing down this road.

Next, it was my turn to find a job. I made a photo album module with Siverlight (sweat, I almost forgot my name just now) (in fact, it is not very complete, but I found many beautiful women on the Internet as photo album content! ! ! ), went to the company for an interview behind the computer (note, not waiting for notice, but directly to the company). They asked me to take a written test the next day (there was no interview, it seemed that they were not printing or were busy), but the conversation revealed that I had to do some JavaScript. My God, I don’t know if I heard this name for the first time, but I remember copying and pasting a short script when I was working on ASP.NET (as you know, ASP.NET gives the impression that dragging the control is the end of the matter). As a result, I ran to the Internet cafe, downloaded an e-book, went back to the hotel to finish eating and sleeping, and went to the written examination the next day. The written examination result was 65 points and I just passed. In fact, I am very grateful to the people who interviewed me at that time (currently in Ali, very good). In this way, I really embarked on this road of no return.

At the same time of work is learning, I should be able to learn the kind of strong, many can be used immediately. After week began to contact with the project (not ordinary bug modification), it can be seen that the company was short of people at that time. Because I am very capable, the manager was sitting behind me “guiding” the programming (in fact, he is fine and likes to do it behind other people’s backs). After a while, he stopped sitting behind me and did it behind another newcomer. To be honest, I still thank my first company very much. After all, he gave me an experience that made me grow up quickly.

After a year and a half, I left the first company and came to the second company. At the beginning, it was mainly used, but it was already getting in touch with the source code. When I came to the second company, I didn’t arrange any specific projects. It was all research. At that time, I was considering building a bottom-level UIkit for other departments to use. So, give yourself a lot of time, that period of time can be said to be the advanced stage of your ability. I have already started to contact some knowledge of js grammar and html5 at the bottom.

But soon, I left that company in one year and went to the third startup company to take charge of the front end. I began to write my own framework and systematize the front-end knowledge I learned (mainly front-end, because I have mainly contacted front-end aspects since I worked). In fact, when I was in the second company, I already tried to build wheels. According to jqmobi, jquery mobile wrote a mobile framework. I don’t know whether the general manager pulled me into general manager office because of this (in other words, I don’t even know what general manager office does). This stage is mainly for use, not for learning. Of course, it has also deepened and deepened understanding.

The third company went bankrupt (less than a year later), came out to find a fourth job, and has now offered to resign. The fourth job mainly gave me the opportunity to try out the framework I wrote, that is, my ability has been tested by practical projects.

So far, I have been working for nearly 6 years, mainly engaged in front-end work (in fact, the goal I set for myself is an architect). Since the resignation has been proposed, I have the time to visit the segmentfault, answer the questions above and write the answer.

In fact, other people's experiences are all others' after all, and one's own life has to be lived by oneself.
 Confusion, everyone will experience, some people can quickly adjust themselves to escape, while others will take a long time.
 Look at this.
 https://segmentfault.com/q/1010000004921122/a-1020000004921925
 I have also met other people who have asked similar questions.

What I just said is me. I’ll talk about you next. I can only say it briefly through your code. Please forgive me if there is something wrong.

First, the code is really messy.
 You can abstract some methods, and add more comments and line breaks, which can also make your code look much more comfortable.
 Second, there are many areas where the code can be optimized.
 For example, dwid=dwid||'' (only in terms of writing, not in terms of performance), the optimization in bklm_fn method does not want to be written.
 Third, don't be easily influenced by the outside world (mainly because you said your current company, including I said so much here);
 Fourth, in fact, you already know your own problems. Maybe you haven't completely found a solution yet. Don't be too hasty in everything. Step by step.
 
 Finally, Good Luck!