Becoming A Front End Developer
Tags: webdev, react, javascript, java
Published: 2022-02-17 00:41:47

**A whole new world?**
If you are fond of travelling, you would be quite upset these years due to the pandemic. Meanwhile, 2022 is the year I move from Hong Kong to UK. Despite how exciting I would be since there would be lots of things to explore, it is also challenging to settle down in a new place. After all, it would also be a good time for me to re-think my career at the moment.

**First things first, HTML and CSS.**
Although IT was not my first choice in the university, I got a related bachelor degree more than 10 years ago. At the beginning of my first job, I don't even know much about HTML and CSS. But I got a task to revamp the school website which is full of table layout, embedded javascript and Adobe Flash. I found it is the part of the job I mostly enjoy among all the tasks from adhoc hardware support to movie editing.

I remember there was a website called CSS Zen Garden. I was caught by the beauty of the tidiness and simplicity of the layout, and the possibility of CSS. So I learnt HTML and CSS at that time as well as some concepts of separation of HTML, CSS and JS. And I dreamed of building a successful website. After two years, I was able to find a Java related job in a government department as an IBM Web Sphere portal support staff.

**Here comes the Java**
Again, I don't know any of Java. Not to mention J2EE, and many of enterprise level applications. But I have was again caught by the power of JSP and servlet. So I learnt Java SE and got a SCJP. Later on, I took a J2EE course to learn those MVC frameworks like Struts, Spring and JSF. 

After some years, I was able to find a Java developer job in a QUANGO. This is the time I feel like I am an IT professional finally. As the team was running Scrum model, I have to keep tracking on my tasks on Kanban board and attend stand up meeting everyday. In fact I feel like if I want to build a professional full functions website, I have to be a full stack developer, or even more of a back-end developer to deal with servlet and EJB logics. I had to learn gangs of four design pattern, and ACID principle of database as well.

One thing very basically make me not feeling confidence of using Java is my struggling to "Object Oriented". When I practice myself, I often think the object I have designed is not good enough. And falling in the loop of abstraction to make the tight-coupling loose. 

**Taking a breath**
A year later, my former supervisor ask me to help with retirement of the Portal. I want to take a breath so I came back, regardless there is not much coding in the system support role. Until last year, I feel a bit lost and in a bottleneck of my career. Plus something unpleasant happened in my home country, so I decided to go to UK.

**Leaving the old world**
I would like to do any part-time job to earn a living. But for full time job, this time, I don't want to rush for a job only because I want a job. As my skills are almost outdated (I am a SCJP6 holder), I have to catch up with the latest skill. And I found Spring is in my pocket, so I spend some time to catch up with Spring Boot and hoping to continue my Java career, and there come a word micro service. From my very rough understanding, it would be like they concentrate on building middleware like Restful API. That means Java has already fade out from the front end. No more JSP.

**Yes, a whole new world!**
It's good to know what is outdated and what is still alive. There is a period of time last month I keep on googling "Is XXX dead?" (e.g. is JSP dead, is jQuery dead, is CSS dead).  For Angular and React, I know the name of these hot front-end frameworks for long time but just didn't try it (as my main is Java). So I would like to pick one to start. I made a decision after doing a search in Stack Overflow Trend. Last month I started to learn React and I was deeply attracted! Despite React has been released for years, I don't know front-end framework like this could change the game totally. And there seems no more jQuery, which has been so hot before. Though there are lots of concepts like declarative VS imperative, Virtual Dom, Component base, JSX...I don't have any feeling of overwhelming like I learn Java before. Another thing that I am amazed and feel thankful is functional programming, which save me from OO! 

**It's never too late to learn new thing.**
Now I have already launch my portfolio website with Next.js, a React framework (It is interesting to me that very often there is a framework on top of a framework.) which seems concerning the issues like Server Side Rendering (SSR) ,Static Site Generation (SSG) and SEO. I am so exciting that I coded my personal website.

I also find lots of UI Libraries like MUI, Chakra, Tailwind...oh...when I mention Tailwind, that would lead to a question, how should I do the styling stuff now, and where should I put CSS to. Are those CSS pre-processor like SASS and LESS dead? Should I use Tailwind CSS, Styled Components or Styled props of emotion? While I might finally pick one, I would like to try them one by one in my own projects.

I feel refreshed and feeling more comfortable for frontend development with updated tech.

**What's Next?**
Typescript. My first project is Tic-tac-toe (knowns as Noughts and Crosses in UK). And I would take this project as my typescript exercise.

Happy hacking!