I want to share my story with you about how it feels to be a front-end engineer. I want to tell people that programming is fun and there’s no need to be a super-human to create something.
My name is Yazan. I am 24 years old. I like to share my knowledge with other people and learn from them. You can follow me on twitter or check my latest articles on my site yaabed.com. Also, I have my publication at medium blog.yaabed.com.
Working as a programmer is not easy. It needs hard work every day and night. However, I wasn’t that lucky to start coding when I was young.
Despite the fact that I studied computer science, I didn’t know why it was a lucky choice. I finished my first year at university. I didn’t know why people couldn’t give me useful information about my next step in programming. But it seemed that I liked web development.
Kent C. Dodds said if you understand what you learn you can teach it quickly to other people.
Back then, I decided to join companies as a trainee to learn from people in the Palestine community. It was an excellent choice, because universities don’t teach you how to code. I didn’t have any experience. I knew things like algorithms, data structures, and operating systems.
I realized that I was learning things by myself, and no one gave me knowledge about what they knew. I didn’t know why people were afraid to share knowledge. However, it is a beautiful feeling to teach other people what you learn.
You need to work hard for your first job as a front-end engineer. Learning to code only by reading things is not a good idea the first time around. You need to get your hands dirty with any programming language. My advice to you if you are at the first phase of learning is to build things. I recommend trying to build one application from this article by Roy Derks.
It was a bad feeling that I couldn’t find a way to learn things. Although there was a fair amount of information around me, I couldn’t decide what was right and wrong in my code. But I kept trying by myself.
I was still working with AngularJS. It was frustrating that all the people around me were discussing how awesome ReactJS and the new Angular were. I started reading books about these new technologies. There were massive changes. The introduction of the component-based architecture concept changed everything.
I started thinking — what if I could start working with component-based architecture with AngularJS? I found a perfect answer inside a book called “Modern AngularJS” written by amazing people like Nate Murray.
Introducing something like component-based architecture for your team is not an easy thing to do. But, it is a good feeling. I usually ask about what I learn on Twitter. There are a friendly people like Kent C. Dodds who are ready to help you with anything. You can ask him your questions in what he calls “Ask me anything” on GitHub.
Generally, I like reading very much. I read many things daily. I read books. I read articles. I read tweets.
Bellow, you can find my way of learning new things and how I solidify my learning.
Try to set your goals first. Don’t learn things without knowing why you need to learn things. In the beginning, I was trying to learn everything, and this was not a good Idea. I don’t know about you, but sometimes digging deep into the implementation details gives me a headache. I felt like I lost my time over nothing.
Try to break things into small items. If you want to learn ReactJS, don’t go and learn “Advanced React Patterns” at the first level. Start by trying to create a small component that does nothing. Then try to make it interactive. Then try to make it more reusable. I remember when I built react-tabs inside one component with “div” and “li”. Then I broke it into more than one component and learned how to share state between components.
Try to read more about what you code. When I learned about compound components, I started by searching for what a compound component is. Then I started seeing how people were using them, and I read more.
Try to write about what you learn. I learned this step from Kent C. Dodds. It is a fantastic way to solidify your understanding of things. You don’t need to be a genius writer to write things. My primary language is Arabic, but I write and share knowledge any way I can.
Try to use what you learn in your job or on your projects and see if what you learn is helpful or not. This step solidifies your understanding more and more.
Try different ways to solve a problem. A programmer needs to be flexible and believe in other people’s work. Every code pattern is out there for a reason, not just for fun.
Try to learn what DevOps means even if you are a frontend engineer. If you want to scale your application and split things using micro fronts, and you don’t know how your server works or where to deploy your work, you can’t enhance it.
Brad Frost is a fantastic person who shares his knowledge and likes to share things. His pinned tweets are “Work hard. Don’t be an a**hole. Share what you know.” He wrote a book called “Atomic Design.” I read it and like it a lot. You can find his blog here.
People believe that programming is an easy task. They don’t know how hard it is to set aside your self-teaching for more than 12 hours a day. Addiction to code is not easy.
Nevertheless, try to have your own time without coding — just relaxing, playing, eating, watching movies, or seeing your friends. I am not good at this yet, but I am still trying to live without coding sometimes. Still, it seems coding is life for us.
Finally, Always Believe in yourself. You can do it. I hope I can make you feel better that you are a front-end engineer or a full-stack engineer. Find what you are good at and try to solidify it. Please don’t underestimate other people’s work. I hear about people who work in other fields in computer science, and it inspires me.
“Programming is for anyone who loves to create, who loves to get out of their comfort zone, and for anyone who loves to improve themselves!” — Lydia Hallie
I am writing at blog.yaabed.com . If you enjoyed this article please make sure to share it with other people. And don’t forget to hit the follow button for more articles like this, also follow me on twitter .
Yazan Aabed@yazanaabedMy team lead most of the times said no to everything. At some point, he didn't even believe in these modern patterns. I don't know how people can persuade for these things. Like @kentcdodds he gives PayPal new ideas every day. 🤷🏻♂️🤦♂️ I hope I can do this soon. 🙂21:21 PM - 01 Aug 2018
Yazan Aabed@yazanaabedBe gentle 🙂 twitter.com/dan_abramov/st…09:39 AM - 04 Aug 2018Dan Abramov @dan_abramovI’ve noticed that React community is especially susceptible to this. Since React is flexible and can be used in a variety of ways, people also tend to develop strong opinions. Avoid pushing your opinions in teaching, be gentle.
Yazan Aabed@yazanaabedThe worst thing when you don't have unit tests, and you refactor things 😆😅🤷🏻♂️🤦♂️ I believe that people don't like testing because they are lazy. I recommend to take the @kentcdodds testing course and see the difference.
frontendmasters.com/courses/testin… twitter.com/BenLesh/status…11:14 AM - 03 Aug 2018Ben Lesh 🧢🏋️♂️💻🎨 @BenLeshA hidden danger of when you only have unit tests, but no integration/behavioral tests: Refactoring. When you refactor, you'll be forced to change your unit tests, and without integration/behavioral tests there's now an even higher risk you're breaking something.
Yazan Aabed@yazanaabedI agree with him, the more I study #react, the more I believe it is the best 😅🔥👨💻😆 twitter.com/swyx/status/10…13:37 PM - 02 Aug 2018shawn swyx wang 🌟 @swyxThe more I study React, the more I find it balances opposite & apposite concerns It's declarative, but with imperative escape hatches. It's immediate-mode in render, retained-mode in state. It's render() is reactive, but nothing else about it is. All were conscious decisions 🤯
Yazan Aabed@yazanaabed21:31 PM - 01 Aug 2018Dhanish 🇵🇹 @dhanishgajjarIn this weeks episode of @syntaxfm #Podcast by @wesbos and @stolinski - Potluck - Editor Fonts, Portfolios, Meetup Tips, Switching to Windows, Freelance Sources 👉🏽 https://t.co/TDvYbXkDJt https://t.co/E8SKSRwjfl