<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Piero Borrelli</title>
    <description>The latest articles on DEV Community by Piero Borrelli (@borrellidev).</description>
    <link>https://dev.to/borrellidev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F149629%2F88740839-1416-477e-8696-67ffb3080e20.jpg</url>
      <title>DEV Community: Piero Borrelli</title>
      <link>https://dev.to/borrellidev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/borrellidev"/>
    <language>en</language>
    <item>
      <title>I'm giving away for free 1 year of coding tutorials</title>
      <dc:creator>Piero Borrelli</dc:creator>
      <pubDate>Wed, 17 Mar 2021 18:36:29 +0000</pubDate>
      <link>https://dev.to/borrellidev/i-m-giving-away-for-free-1-year-of-coding-tutorials-29ol</link>
      <guid>https://dev.to/borrellidev/i-m-giving-away-for-free-1-year-of-coding-tutorials-29ol</guid>
      <description>&lt;p&gt;Hello everybody!&lt;/p&gt;

&lt;p&gt;You know, one of the platforms I've always loved the most is Codeacademy.&lt;br&gt;
​&lt;br&gt;
It's just such a complete learning environment.&lt;/p&gt;

&lt;p&gt;You get coding tutorials and quizzes. You get to build real-world projects and get peer support. Plus, you also get access to their amazing community of passionate developers just like you.&lt;br&gt;
​&lt;br&gt;
And all of this is included in their Pro plan, which I'm giving away for free!&lt;/p&gt;

&lt;p&gt;In fact, I've just created my first giveaway!&lt;/p&gt;

&lt;p&gt;One lucky person (might be you), will get the chance of winning a free full-year subscription to Codeacademy Pro! (over 200$ worth of value!)&lt;br&gt;
​&lt;br&gt;
That's it, one full year where you will have your whole learning process ready for you.&lt;br&gt;
​&lt;br&gt;
What you waiting for before joining??&lt;br&gt;
​&lt;br&gt;
You can find the link to participate -&amp;gt; &lt;a href="https://kingsumo.com/g/zbjwow/win-1-year-of-free-coding-tutorials-with-a-codeacademy-pro-subscription"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;​&lt;/p&gt;

&lt;p&gt;P.S: if you really want to skyrocket your chances of winning, all you need to do is simply share the giveaway. After you will subscribe to it, you will see a comfortable menu where you can perform some actions to increase your entries (possibilities of win).&lt;br&gt;
​​&lt;br&gt;
Can't wait to discover who the winner will be!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>beginners</category>
      <category>css</category>
    </item>
    <item>
      <title>Why the best developers often say "NO"</title>
      <dc:creator>Piero Borrelli</dc:creator>
      <pubDate>Tue, 25 Feb 2020 22:55:06 +0000</pubDate>
      <link>https://dev.to/borrellidev/why-the-best-developers-often-say-no-2oj7</link>
      <guid>https://dev.to/borrellidev/why-the-best-developers-often-say-no-2oj7</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9_rrCFA---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/udjilnmv5dfpkhzuwrbv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9_rrCFA---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/udjilnmv5dfpkhzuwrbv.png" alt="Working late to keep a promised deadline&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please note&lt;/strong&gt;: this article is inspired and reports concept demonstrated in a chapter of the amazing book &lt;a href="https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers-ebook/dp/B0050JLC9Y"&gt;The Clean Coder&lt;/a&gt;, a code of conduct for developers around the world on what a “Professional Developer” is, and how to gain such level of professionalism.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;As a young developer with barely three years of experience, I find myself dealing with new aspects of relationships with peers in my job almost every day. Especially when it comes to &lt;strong&gt;speaking to senior developers&lt;/strong&gt; about how &lt;strong&gt;“that feature you’re developing is going”&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And you know, when you’re new in the office, you often wanna act like the guy &lt;strong&gt;who isn’t causing troubles to the seniors&lt;/strong&gt;. Who’s job is always done in time and who isn’t causing any troubles because he still doesn’t know how the project works. So &lt;strong&gt;sometimes you basically lie and act like everything you are working on is under control&lt;/strong&gt;. Like you don’t know that this feature will be late and you will “somehow” find a way to make this work for the promised deadline.&lt;/p&gt;

&lt;p&gt;Well guys, let me just tell you thing… If you believe that this behaviour is gonna “make you shine” or simply save your face, &lt;strong&gt;then you are wrong&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4a8qHlRH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/14j8w6yo3rpr8n99jdzk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4a8qHlRH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/14j8w6yo3rpr8n99jdzk.png" alt="Me leaving the office thinking: what did I just do.."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Professionalism Problem
&lt;/h2&gt;

&lt;p&gt;See, not only this practice is not honest, but dishonesty is also one of the basics behaviours of somebody who’s not what we would call a &lt;strong&gt;professional&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The definition of being a professional is quite wide and difficult for me to give with some exact words, but I will give a try:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A professional is somebody who takes full responsibility for his actions, his words and his promises. All while trying to deliver the best possible result from his work.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s it, a professional &lt;strong&gt;won’t lie to you about a deadline&lt;/strong&gt;, it won’t accuse somebody else if the code he/she has written that doesn’t work. And &lt;strong&gt;every promise he makes has a meaning and commitment behind it&lt;/strong&gt;. There is no trying, just doing it and doing it properly.&lt;/p&gt;

&lt;p&gt;And when it comes to trying as Robert C. Martin says in &lt;a href="https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers-ebook/dp/B0050JLC9Y"&gt;The Clean Coder&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The promise to try is an admission that you’ve been holding back, that you have a reservoir of extra effort that you can apply. The promise to try is an admission that the goal is attainable through the application of this extra effort; moreover, it is a commitment to apply that extra effort to achieve the goal. Therefore, by promising to try you are committing to succeed. This puts the burden on you. If your “trying” does not lead to the desired outcome, you will have failed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;— Robert C. Martin — The Clean Coder&lt;/p&gt;

&lt;h2&gt;
  
  
  The Traits Of A Professional
&lt;/h2&gt;

&lt;p&gt;Of course, the above-given definition of a professional is pretty personal and quite limited. There are other important traits of such a figure that we can consider such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The willingness to help others&lt;/strong&gt;: how good is it to have a senior developer who’s not afraid to help juniors? Not by shaming them or making feel them inferior, but simply by providing them with occasions to grow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nsMpj8MY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/eqcyzr8wtakssbugx3gv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nsMpj8MY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/eqcyzr8wtakssbugx3gv.png" alt="The best developers are not only good tech people but also willing to raise juniors to their level&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Continuous learning&lt;/strong&gt;: would you pay a lawyer who’s not updated with the latest laws or rules? Or a mechanic who doesn’t know how to fix new technologies in your car. Well, that’s the same for a developer, &lt;strong&gt;a true professional will always be up-to-date and will strive to learn new stuff to keep his/her figure marketable.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ImNjpqnu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/puj5fvv29jnbxka260py.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ImNjpqnu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/puj5fvv29jnbxka260py.png" alt="A professional will always be up-to-date with the latest trends&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The ability to say “no”
&lt;/h2&gt;

&lt;p&gt;But there is one professional trait that I still have to mention and that is the key point of this article: the ability to say no. When I talk about this, I don’t mean that you should have some manipulative skills to just avoid some work that you were assigned. I’m talking about telling the truth, I’m talking about having the ability to say no to a situation that is damaging to the project and the company.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Scenario Of Unprofessionalism
&lt;/h2&gt;

&lt;p&gt;Let me try to give you some examples of scenarios where your inability to say no can be damaging:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Your boss asks you if that feature will be ready by the end of the week, even when you know that it is impossible for you to finish it by that date.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By lying to your boss here &lt;strong&gt;you are not really doing any well to anybody&lt;/strong&gt;. First of all, &lt;strong&gt;lying is not professional&lt;/strong&gt; and won’t take you any far, instead, you will probably &lt;strong&gt;lose respect from your peers&lt;/strong&gt;. Second, what do you think is gonna happen exactly at the end of the week? Well, that’s simple, your boss is gonna come to you asking for that feature &lt;strong&gt;that now is not even close to being ready.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Somebody will have to solve this issue&lt;/strong&gt;, probably your boss talking to the clients at this point. Maybe you could have worked every night to accomplish the task, but &lt;strong&gt;why killing yourself 16 hours a day instead of simply telling the truth and try to find a new solution.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maybe you could have delivered part of the feature and &lt;strong&gt;make your boss and clients aware of it, maybe you could have dropped a simplified version of it.&lt;/strong&gt; It’s none of your boss’s fault, in this case, &lt;strong&gt;he was just making his job and trying to get the best possible outcome of it&lt;/strong&gt;, he trusted you as professional and your words for a language of commitment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5RABhunW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zub7gzjui6vripd3dvp6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5RABhunW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zub7gzjui6vripd3dvp6.png" alt="Rushing trying to understand how to get your shit done by the day you promised to your boss&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You start working on a new feature and realize it will take a lot more time than planned&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pretty similar to above, raise your hand immediately and make your brain burn to try to find a new solution based on truth, on your ability to say no to a situation that would otherwise damage everybody.&lt;/p&gt;

&lt;h2&gt;
  
  
  About saying yes
&lt;/h2&gt;

&lt;p&gt;Does everything I have mentioned above mean that you should just say no to everything that appears to be unprofessional and just stop there? Well, that’s not the end of it. &lt;strong&gt;You should always strive to find creative ways of saying “yes”.&lt;/strong&gt; That’s it, the best teams are full of people who will negotiate with each other based on their needs and trying to find the best yes possible. &lt;strong&gt;Your colleagues and your boss are counting on you and your ability to say no to truly understand how to solve a problem in the best way!&lt;/strong&gt; this is what a team player is and what everybody should try to be.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k17uYKyA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ikob58u240csyr0m5apq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k17uYKyA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ikob58u240csyr0m5apq.png" alt="Everybody is happy for the team accomplishment&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Being a software professional is hard, not only because of all the technologies we’re required to know, but because there are a lot of behaviours, practices and soft skills that are a core part of how we will manage our life in the office and how “professional” we will be perceived as. Learn how to say “no”, learn the benefits of truth and how it can activate your brain to find the best “yes” possible.&lt;/p&gt;

&lt;p&gt;— Piero&lt;/p&gt;

&lt;p&gt;Follow me on my Twitter: &lt;a href="https://twitter.com/BorrelliDev"&gt;https://twitter.com/BorrelliDev&lt;/a&gt;&lt;br&gt;
Or Medium: &lt;a href="https://medium.com/@pieroborrellidev"&gt;https://medium.com/@pieroborrellidev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>codenewbie</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The 10 best projects for an impressive portfolio</title>
      <dc:creator>Piero Borrelli</dc:creator>
      <pubDate>Fri, 19 Jul 2019 14:30:21 +0000</pubDate>
      <link>https://dev.to/borrellidev/the-10-best-project-for-an-impressive-portfolio-bf7</link>
      <guid>https://dev.to/borrellidev/the-10-best-project-for-an-impressive-portfolio-bf7</guid>
      <description>&lt;p&gt;Good morning guys, here to ask you today, what kind of personal portfolio projects do you think are the most interesting to create when it comes to web development? Something like a MEAN/MERN stack app, a clone. &lt;/p&gt;

&lt;p&gt;Do you think that is better to have many 'good' projects or a unique 'amazing' one?&lt;/p&gt;

&lt;p&gt;Comment below ======&amp;gt;&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>10 Developers From All Over The World Share With Us Their Story</title>
      <dc:creator>Piero Borrelli</dc:creator>
      <pubDate>Sun, 14 Jul 2019 22:45:27 +0000</pubDate>
      <link>https://dev.to/borrellidev/10-developers-from-all-over-the-world-share-with-us-their-story-jn2</link>
      <guid>https://dev.to/borrellidev/10-developers-from-all-over-the-world-share-with-us-their-story-jn2</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;"Hold the vision, Trust the process"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;span&gt;I decided to write this article because&lt;strong&gt; I wanted to tell a story&lt;/strong&gt;. I wanted to be able to use my blog to share the voice of 10 developers from &lt;strong&gt;all over the world&lt;/strong&gt;. All of this started as a simple idea, but as soon as I started reading people answers I found in each one of them a little &lt;strong&gt;gem&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;These precious words are not only a little life report of 10 people, but also their opinions, ideas and struggles with a job each one of us reading this blog loves. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;I just hope their words will be useful for you as they were for me when first reading them. Hope this article will inspire you to do better and to remind you that out there, other people are working hard in this sector simply because, &lt;strong&gt;like me and you, they love it.&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I will add a reference to each one of their Twitter profiles at the bottom of the article so that you can get to know them even better.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;Thank you to all the people who participated in this, you guys are amazing!&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h1&gt;
&lt;span&gt;#1 Give us a little introduction of yourself&lt;/span&gt; &lt;span&gt;(name,&lt;/span&gt;&lt;span&gt; age and your current position)&lt;/span&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Roy&lt;/span&gt;&lt;/strong&gt;: My name is Roy Derks, I do a lot of things ranging from being a &lt;strong&gt;developer&lt;/strong&gt; to being an &lt;strong&gt;entrepreneur&lt;/strong&gt;. Most of my time is spent on working on open-source projects for the City of Amsterdam and managing&lt;strong&gt; my own startup, SwitchBay&lt;/strong&gt;. Also, I speak on conferences and teach others how to use React and GraphQL. Find more informations &lt;a href="https://t.co/o9XpEihwh2?amp=1" rel="noopener noreferrer"&gt;here.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Aurelie&lt;/span&gt;&lt;/strong&gt;: Hi! I’m Souvir, 25 and currently a&lt;strong&gt; full-stack developer&lt;/strong&gt; at Iziwork, a French startup in Paris. My twitter handle is &lt;a href="https://twitter.com/Souvir" rel="noopener noreferrer"&gt;@souvir&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Dan&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;My Name is Dan Englishby and I’m from the sunny country of England. I’m 28 years of age and have been a &lt;strong&gt;full stack developer&lt;/strong&gt; for the last 5 years.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Emma&lt;/strong&gt;&lt;/span&gt;: Hi, I’m Emma - I’m a &lt;strong&gt;UX Engineer&lt;/strong&gt; working at LogMeIn on &lt;strong&gt;GoToMeeting&lt;/strong&gt;. I’m originally from Upstate New York, but a year ago I moved to Germany!&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Aman&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;Hi, &lt;/span&gt;&lt;span&gt;Thank you so much for giving me this opportunity to share my story.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;I am Aman Mittal, and am 26 years old. Currently, I am working as&lt;strong&gt; consultant full-stack JavaScript developer&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt; When I am using VSCode or a terminal window, I read books and write about them at my book blog. Some of you might know me from Twitter or Medium&lt;/span&gt; &lt;span&gt;(&lt;a href="https://twitter.com/amanhimself" rel="noopener noreferrer"&gt;@amanhimself&lt;/a&gt;&lt;/span&gt;&lt;span&gt; handler at both), where &lt;strong&gt;I post a lot about my technical writing in form of tutorials&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mohammad&lt;/strong&gt;&lt;/span&gt;: I’m Mohammad Javed, aged 30 from the United Kingdom, Manchester. I work full time as a &lt;strong&gt;Web Developer&lt;/strong&gt; for a company called Digitl, link &lt;a href="https://t.co/TPcF89KzSo?amp=1" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/span&gt; &lt;span&gt; &amp;amp; blog occasionally &lt;a href="https://t.co/2pIfzU2zfQ?amp=1" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Inne&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;Hello, my name is Inne. I am 34 years old, I live in Indonesia. I am the Vice President of Coding Mum Community Indonesia&lt;/span&gt; &lt;span&gt;(&lt;a href="https://twitter.com/codingmum_id" rel="noopener noreferrer"&gt;@codingmum_id&lt;/a&gt;)&lt;/span&gt;&lt;span&gt; and also one of the mentors in the community. &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Sean&lt;/span&gt;&lt;/strong&gt;: My name is Sean Aguiñaga. I’m 25 right now. Currently, I’m working as a CTO/Tech&lt;/span&gt;&lt;br&gt;
&lt;span&gt;Advisor at a startup that’ll be&lt;/span&gt; &lt;span&gt;(hopefully)&lt;/span&gt;&lt;span&gt; be getting serious funding in a couple of months.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mike&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;Hi! My name is Michal Skowronek and some people call me Mike, &lt;/span&gt;&lt;span&gt;I'm 32&lt;/span&gt; &lt;span&gt;(1987)&lt;/span&gt;&lt;span&gt; and I'm a &lt;strong&gt;senior &lt;span&gt;frontend &lt;/span&gt;developer&lt;/strong&gt;. In my previous job I was also frontend team lead.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Fortune&lt;/span&gt;&lt;/strong&gt;: My name is Kelechi Fortune Ikechi, am a 19-year-old Nigerian, and I am a &lt;strong&gt;full stack web developer&lt;/strong&gt;, although an &lt;strong&gt;expert in front end development&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fjon-tyson-520955-unsplash.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fjon-tyson-520955-unsplash.jpg" alt="Live, Work, Create"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h1&gt;
&lt;span&gt;#2 &lt;/span&gt;How did you start coding and how did you get your first job?&lt;/h1&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Roy: &lt;/span&gt;&lt;/strong&gt;I started programming about 12 years ago when I wanted to&lt;strong&gt; start my own business&lt;/strong&gt;. Back then Video on Demand didn't exist and I had this idea for a peer-to-peer platform where you could trade DVDs with other people.&lt;strong&gt; As I needed a website for this, I taught myself how to program and just started building it&lt;/strong&gt;. With this experience, I started to help other people build their startup dreams as a freelancer.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Aurelie&lt;/span&gt;&lt;/strong&gt;: I started programming at school, as a student at HETIC&lt;/span&gt; &lt;span&gt;(a&lt;/span&gt;&lt;span&gt; French Web school). I was first intending to&lt;strong&gt; learn Web Design until I discovered Web Development&lt;/strong&gt;. I fell so in love with CSS and later Javascript that it changed my dream career and made me code day and night!&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span&gt;My first experiences were both school internships&lt;/span&gt; &lt;span&gt;(several&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;strong&gt; months in startups and Web agencies) and freelance missions while studying to pay my tuition fees&lt;/strong&gt;. But my first permanent contract was with&lt;/span&gt; &lt;span&gt;"La&lt;/span&gt;&lt;span&gt; Société Générale", a French multinational investment bank company headquartered in Paris where I worked as a full stack developer.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Dan&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;Believe it or not, I started out as an administrative clerk for a company in the manufacturing industry.&lt;strong&gt; It was only when there was an opportunity of getting involved in something that I found the love of code.&lt;/strong&gt; After getting involved in a major data-analysis system, I was given a job of Full Stack Developer for the company!&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Emma&lt;/strong&gt;&lt;/span&gt;: I started programming my Sophomore year in college. So I had about four years of computer science where &lt;strong&gt;I learned Java, MySQL, PHP, MIPS, HTML, CSS, and JavaScript&lt;/strong&gt;.&lt;strong&gt; I got my first job as a result of an internship&lt;/strong&gt;. &lt;/span&gt;&lt;span&gt;I was an intern at IBM for six months during my Junior year where I automated the installation of WebSphere Application Server on z/OS using Python. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;During that internship, my dad’s previous manager stopped by to say hello and see if I’d be interested in moving to Texas. &lt;strong&gt;Once I graduated, I moved down south to start my first position.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Aman&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;Even though I am a Computer Science graduate&lt;/span&gt; &lt;span&gt;(almost&lt;/span&gt;&lt;span&gt; 4 years), &lt;strong&gt;I didn’t consider programming as something to make living out of it, until I graduated&lt;/strong&gt;. I took some time off after my graduation to get as many hands-on experiences with programming.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span&gt;I started out with JavaScript since Nodejs seemed interesting to me at the time&lt;/span&gt; &lt;span&gt;(and&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;strong&gt; still is), and also the prospect of working on front-end using frameworks like Angular and React without learning a new programming language.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;Thus, my first job was the role of a Node developer.&lt;/span&gt; &lt;strong&gt;&lt;span&gt;Things that often spark a fire inside me is to have freedom create or build something of my own&lt;/span&gt;&lt;/strong&gt; &lt;span&gt;(even&lt;/span&gt;&lt;span&gt; though ideas/projects do suck most of the time or goes unattended after a while &lt;em&gt;pun intended&lt;/em&gt;). Programming is one of those few things that let me achieve that level of freedom in this on-going internet age.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mohammad&lt;/strong&gt;&lt;/span&gt;: &lt;strong&gt;I was initially into gaming&lt;/strong&gt; but quickly grew out of it around the age of 11/12. From doing the basic HTML/CSS/ASP.NET/VB.NET in college and Uni &lt;strong&gt;I decided I wanted to build websites&lt;/strong&gt;. &lt;strong&gt;I ended up getting my first job as a developer via Twitter&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt; After leaving university &lt;strong&gt;it was tough to find a job anywhere&lt;/strong&gt;, I applied literally everywhere offering to work for free to gain the experience of working for a company, no-one would give me the time or day till RedStar Creative&lt;strong&gt; gave me the opportunity&lt;/strong&gt;, after a quick interview I never looked back, after a couple of months I was earning a salary, albeit a basic one and then &lt;strong&gt;over the years I’ve just grown&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Inne&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;I started programming in 2006 at college,&lt;strong&gt; it was really confusing &lt;/strong&gt;at&lt;strong&gt; the first time&lt;/strong&gt;. After I graduated, I decided not to involve myself with programming again until I join the&lt;strong&gt; Coding Mum Community&lt;/strong&gt; in 2017 and started to focus on web development. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;I got my first job when the committee saw me teaching the other moms&lt;/strong&gt;. Started from there, they gave me the mentor seat and awarded me as a The Best Alumnae in Education Sector, more information at the Indonesian page &lt;a href="http://www.bekraf.go.id/berita/page/8/tiga-alumni-coding-mum-terima-penghargaan" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Sean&lt;/span&gt;&lt;/strong&gt;: I got my first computer at four years old. It ran MS-DOS at first, which isn’t the easiest &lt;/span&gt;&lt;span&gt;thing to use for an adult, let alone a kid. My dad upgraded it to Windows 95 so that made it a &lt;/span&gt;&lt;span&gt;lot easier to actually use.&lt;strong&gt; Who doesn’t like a GUI?&lt;/strong&gt; Being comfortable with command prompt &lt;/span&gt;&lt;span&gt;stuff, driver issues, etc. made it easier to get into actual coding later on. &lt;/span&gt;&lt;br&gt;
&lt;span&gt;&lt;strong&gt;I started coding on &lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;. Getting all the hardware drivers installed was fun on my HP laptop. Honestly, I installed &lt;/span&gt;&lt;span&gt;Ruby first because the icon was pretty. I really had no idea what it was.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;After fiddling around &lt;/span&gt;&lt;span&gt;with that I Installed Python. Not much came of installing this stuff. &lt;strong&gt;I’ve always been a visual&lt;/strong&gt;, &lt;/span&gt;&lt;span&gt;“design-y” person and at the time I wasn’t aware of how to make a pretty UI from scratch using &lt;/span&gt;&lt;span&gt;them so my interest waned. I’d rather browse the web, read Wikipedia articles or play computer &lt;/span&gt;&lt;span&gt;games. &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;I did make a Yahoo! GeoCities site that I liked when I was around 10. Jumping to after I&lt;/span&gt;&lt;br&gt;
&lt;span&gt;graduated high school, I had a tech-nerd reputation and&lt;strong&gt; got asked to do IT/Web stuff for a &lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;small business so I did that while doing more school&lt;/strong&gt;. HTML/CSS was, in my opinion, wonky at &lt;/span&gt;&lt;span&gt;that time so I used Flash to make the site.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;It let you make some great stuff at the time so I’m &lt;/span&gt;&lt;span&gt;not too ashamed about that decision. I set up the company’s server: email, web hosting, file&lt;/span&gt;&lt;br&gt;
&lt;span&gt;stuff - all in the Microsoft stack of products.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mike&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;I started quite early. I think I was 10. I read some computer magazine and was &lt;strong&gt;impressed&lt;/strong&gt; by the really complicated demoscene effect ' fractal visualization. It was implemented in c++. This was, in fact, my very first language.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt; I didn't really understand pointers at that time but this didn't stop me. I also wanted to create games and visual programming was something which&lt;strong&gt; drove me through hard parts of learning a programming language.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;During my studies, I also &lt;strong&gt;learned how a computer works&lt;/strong&gt;. I was a part of 2 big projects at the university. First was 3d engine created in c# and directx. Second was 3d network renderer for play station 3 farm we had on the university.  &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;Then I focused more on creating desktop applications&lt;/span&gt; &lt;span&gt;(C#&lt;/span&gt;&lt;span&gt; and Delphi). &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;Before I finished studies, me and my friend came up with some cool idea.&lt;strong&gt; We wanted to create portfolio service dedicated mostly for &lt;/strong&gt;programmers. We thought there are places for graphic designers and painters but programmers seemed to show mostly&lt;/span&gt; &lt;span&gt;"boring"&lt;/span&gt;&lt;span&gt; code.  &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;This web application was called pridesk.com and idea behind was like this: show me your desktop and I'll tell you who you are. And you guess, presentation of work was all around desktop like showcase page. &lt;strong&gt;We were doing this for 2 years and we failed &lt;/strong&gt;on&lt;strong&gt; marketing and business part&lt;/strong&gt;. During that time I learned a ton of web dev and javascript stuff. &lt;strong&gt;This was my kind of &lt;/strong&gt;first&lt;strong&gt; job. &lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;The real one though was different. I've been programming desktop applications and telephony gateways. &lt;strong&gt;But I was really missing javascript so I convinced my boss to use Node.js for next project&lt;/strong&gt;. &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;It was webchat for our contact centre server application.&lt;strong&gt; I loved how in around 500 lines of code I was able to create server and client&lt;/strong&gt;. It took me 1 week and everyone was impressed with how Node.js solved a lot of issues we had withTCP and http. &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;Uhm I think this was&lt;strong&gt; the beginning of my dev story&lt;/strong&gt; and presumably it would be a little boring to describe it more.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Fortune&lt;/span&gt;&lt;/strong&gt;: &lt;/span&gt;&lt;br&gt;
&lt;span&gt;I've always been fascinated by computers and how they work,&lt;strong&gt;&lt;span&gt; being &lt;/span&gt;in a country and region where software development is a work for the elite&lt;/strong&gt;, I wanted to be my own person, understand how computers, apps and robots work so I set out on a personal expedition, reading all I can about software development. &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;strong&gt;&lt;span&gt;At 17, I knew a lot about software development theoretically, but I wanted more, my parents are poor and so we can't avoid a computer but my secondary school had a single desktop computer, I was desperate so I opted to be the school computer prefect which would allow me time to practice what I've read. &lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;My first job was a personal project to build my own blog, the blog &lt;/span&gt;&lt;span&gt;&lt;a href="http://memonaija.com/" rel="noreferrer nofollow noopener"&gt;memonaija.com&lt;/a&gt;&lt;/span&gt;&lt;span&gt; was a success but then because of financial problems, I sold it out. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fhello-i-m-nik-698722-unsplash.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fhello-i-m-nik-698722-unsplash.jpg" alt="Motivational quote"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h1&gt;&lt;span&gt;If you were to start learning to program again, what would you learn in 2019 and how would you do that?&lt;/span&gt;&lt;/h1&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Roy&lt;/span&gt;&lt;/strong&gt;: Without a technical background&lt;strong&gt; I would definitely start with JavaScript&lt;/strong&gt;, as it is one of the most &lt;strong&gt;versatile&lt;/strong&gt; and &lt;strong&gt;dynamic&lt;/strong&gt; languages around. Other than trying for yourself at home, &lt;strong&gt;I would advise getting together with other people that are learning to program&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Aurelie&lt;/span&gt;&lt;/strong&gt;: If I had to learn again &lt;strong&gt;I would start with the basics of programming: algorithmics, logic, problem-solving, etc.&lt;/strong&gt; Then I would probably&lt;strong&gt; learn CSS and JavaScript again, and maybe an extra back-end language.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt; I’d go with&lt;strong&gt; pure JavaScript&lt;/strong&gt; though, not React or Angular: this is currently the best way to find a job quickly. Also, I would try not to learn alone&lt;strong&gt; but through classes, a team project, or during an internship; which is, in my opinion, a more effective way of learning.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Dan&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;&lt;strong&gt;I would one, start a Twitter account, two, purchase some online courses from Udemy and websites like that&lt;/strong&gt;. Also, I would follow some of the many extremely informative blogs that are around today.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Emma&lt;/strong&gt;&lt;/span&gt;: I would stick to mostly front-end technologies.&lt;strong&gt; I would learn HTML, CSS, JavaScript, Sass, a popular JS framework/library&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt; &lt;span&gt;(React,&lt;/span&gt;&lt;span&gt; Vue, etc.).&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Aman&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;In the present scenario, I would&lt;strong&gt; focus solely on JavaScript&lt;/strong&gt;. Then continue by adding a marketable skill using either &lt;strong&gt;React or Vue&lt;/strong&gt;. Both of these front-end frameworks have&lt;strong&gt; endless possibilities&lt;/strong&gt; in the domain of web development. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mohammad&lt;/strong&gt;&lt;/span&gt;: I would have learnt &lt;strong&gt;MVC/PHP/JS/jQuery&lt;/strong&gt; more, during the time at Uni the course did not give us the opportunity to learn new programming languages,&lt;strong&gt; I would have never gone to Uni and instead self-learned during those 3 years&lt;/strong&gt;.&lt;strong&gt; I learnt more in my first 6 months as a web developer.  &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Inne&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;I want to be a full stack developer. I’m considering to take a deep understanding of &lt;strong&gt;JavaScript native&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Sean&lt;/span&gt;&lt;/strong&gt;: I think to be great at designing and creating things you really need to be able to draw &lt;/span&gt;&lt;span&gt;from multiple disciplines and perspectives. Context is really key for me and&lt;strong&gt; I wish I knew more &lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;about the specific history of coding itself&lt;/strong&gt; and not just the technical arc of history from the end user's&lt;span&gt; perspective.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt; Knowing&lt;strong&gt; where things like object-oriented programming come from&lt;/strong&gt; and &lt;/span&gt;&lt;span&gt;why someone thought it was a good idea in the first place and what problems it solved from &lt;/span&gt;&lt;span&gt;earlier paradigms and the new ones it made, and so one. As a beginner, there is so much to &lt;/span&gt;&lt;span&gt;learn. I wish there was a guiding voice of reason on hand 24/7 that you could ask things &lt;/span&gt;&lt;span&gt;whenever you get stuck that just answer the specific question you asked,&lt;/span&gt; &lt;span&gt;“how&lt;/span&gt;&lt;span&gt; to solve x?”, &lt;/span&gt;&lt;span&gt;but also places it within an existing body of knowledge in the world in which you want to work. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span&gt;I think people have more potential than employers realize and they set the bar-to-entry too &lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;strong&gt;high.&lt;/strong&gt; Knowledge and its acquisition is a repeatable pattern and behaviour and if someone &lt;/span&gt;&lt;span&gt;shows genuine talent they’ll end up being very productive in the end provided good enough &lt;/span&gt;&lt;span&gt;guidance.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt; I’d hound a software developer for a phone call, have a notepad next to me with &lt;/span&gt;&lt;span&gt;higher-than-normal perspective questions and just&lt;strong&gt; dig deep into their everyday problems and &lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;solutions&lt;/strong&gt;- try and get a feeling for the rationale behind them and go off, make something, often &lt;/span&gt;&lt;span&gt;badly and just keep rinsing and repeating until I have something to show for it that someone &lt;/span&gt;&lt;span&gt;else would think is great.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mike&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;&lt;strong&gt;Web dev for sure&lt;/strong&gt;. By that I mean js, HTML and CSS plus some popular framework. I really love React and its concept so it is most likely it would be my choice. Regarding the learning process, there are a ton of resources for any part of computer science and software development. Personally, I love learning by creating so I would start doing something which needs to meet 2 requirements:&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;span&gt;I want to do it&lt;/span&gt; &lt;span&gt;(the&lt;/span&gt;&lt;span&gt; process itself should make me feel good)&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span&gt;I want to have it done&lt;/span&gt; &lt;span&gt;(to&lt;/span&gt;&lt;span&gt; show off to someone or to make money)&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span&gt;Other than that I live egghead courses. These are so condensed and valuable. I couldn't recommend them more :)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Fortune&lt;/span&gt;&lt;/strong&gt;: If I'm to start learning to programme again, which am doing, &lt;strong&gt;I would start with &lt;/strong&gt;JavaScript&lt;strong&gt; and its frameworks. &lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
&lt;span&gt;First, I would get a laptop&lt;/span&gt; &lt;span&gt;"chuckles",&lt;/span&gt;&lt;span&gt; yeah cos that's&lt;strong&gt; the first limitation to any young programmer in Nigeria.&lt;/strong&gt;&lt;/span&gt;&lt;span&gt; Then I would get an Udemy course on JavaScript, probably because they have great tutors and I would build projects as I learn. &lt;/span&gt;&lt;/p&gt;

&lt;h2&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fadi-goldstein-671017-unsplash.jpg" alt="Motivational quote"&gt;&lt;/h2&gt;

&lt;h2&gt; &lt;/h2&gt;

&lt;h2&gt;&lt;span&gt;Are you working on any personal project(blog, forum, community), and if so, tell us about the one you are the proudest of?&lt;/span&gt;&lt;/h2&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Roy&lt;/span&gt;&lt;/strong&gt;: My most memorable moment last year was &lt;strong&gt;my first tech talk abroad&lt;/strong&gt;, at React Native EU 2018, where I talked about GraphQL. Since that conference, I got asked to present on more conferences and meetups across Europe.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Aurelie&lt;/span&gt;&lt;/strong&gt;: Good question,&lt;strong&gt; I'm always working on some side projects but I rarely finish one! &lt;/strong&gt;&lt;/span&gt;&lt;span&gt;I'm currently preparing online classes. This takes much more time than I thought but I'm sure I will be proud once it will &lt;strong&gt;be finished and released online&lt;/strong&gt;! I am also going to be part of a professional examination board for a Web school in March and had several opportunities to attend &lt;strong&gt;public conferences as a speaker&lt;/strong&gt;, which is a great step for me.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span&gt;Last but not least, I’m very proud of my &lt;a href="https://twitter.com/Souvir" rel="noopener noreferrer"&gt;Twitter community&lt;/a&gt; which is active and benevolent!&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Dan&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;I am indeed, I am the &lt;strong&gt;founder&lt;/strong&gt; of &lt;/span&gt;&lt;span&gt;&lt;a href="https://www.codewall.co.uk/" rel="noreferrer nofollow noopener"&gt;CodeWall&lt;/a&gt;&lt;/span&gt;&lt;span&gt;, a programming and web-development platform for like-minded developers.&lt;strong&gt; I have now built this blog up to a great degree of popularity, something I never thought was possible when I started out!&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Emma&lt;/strong&gt;&lt;/span&gt;: I’m currently building an open-source project called&lt;a href="https://codingcoach.io/" rel="noopener noreferrer"&gt;&lt;strong&gt; Coding Coach&lt;/strong&gt;&lt;/a&gt;. While we’re still in the building phases, we’re hoping to release as soon as possible. &lt;strong&gt;Our mission is to provide a platform which connects free mentees &amp;amp; mentors around the globe.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Aman&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;My priority &lt;strong&gt;personal project is to write and share as much content on Web Development and React Native for fellow developers.&lt;/strong&gt; Along with that, I am trying to build a community around it by running a weekly newsletter in the same domains mentioned.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;You can find my blog posts on &lt;/span&gt;&lt;span&gt;&lt;a href="https://medium.com/@amanhimself" rel="noreferrer nofollow noopener"&gt;&lt;/a&gt;&lt;a href="http://www.medium.com/@amanhimself" rel="noopener noreferrer"&gt;www.medium.com/@amanhimself&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;You are most welcomed to subscribe to my newsletter at &lt;/span&gt;&lt;span&gt;&lt;a href="https://upscri.be/e51a31/" rel="noreferrer nofollow noopener"&gt;&lt;/a&gt;&lt;a href="https://upscri.be/e51a31/" rel="noopener noreferrer"&gt;https://upscri.be/e51a31/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mohammad&lt;/strong&gt;&lt;/span&gt;: I’m working on a Laravel CMS for &lt;strong&gt;my own personal website&lt;/strong&gt;, now it’s more built for blogs. It’s not finished now but hoping to crack on and get that completed ASAP. &lt;strong&gt;I’m prouder of that as I know it’ll turn out brilliant for me. I can’t state any other projects I am proud of due to NDA.  &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Inne&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;At present, I’m working on my mom’s personal online shop&lt;/span&gt; &lt;span&gt;(&lt;a href="http://www.daniaticni.com" rel="noopener noreferrer"&gt;www.daniaticni.com&lt;/a&gt;)&lt;/span&gt;&lt;span&gt; and I write on &lt;a href="https://medium.com/@innera" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Sean&lt;/span&gt;&lt;/strong&gt;: &lt;strong&gt;I’m working on my own portfolio site, sean.tech&lt;/strong&gt;. Trying to do a PWA thing but honestly &lt;/span&gt;&lt;span&gt;who is going to add my site to their home screen? Probably no one. I think web apps are &lt;/span&gt;&lt;span&gt;amazing. The DOM is limiting, etc., etc. but it’s what we have to work with now and I think it’s a &lt;/span&gt;&lt;span&gt;really promising space. &lt;strong&gt;Of course, I’m gonna start posting articles with &lt;a href="https://thecoderswag.com/functional-programming-vs-oop-a-comparison/" rel="noopener noreferrer"&gt;thecoderswag.com/SeanAguinaga. &lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;Which is exciting and I’m looking forward to it.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mike&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;Hmm,&lt;/span&gt;&lt;span&gt; I think I am working on something now. &lt;strong&gt;I hope it would help people create nice looking and working web applications&lt;/strong&gt;. More precisely I want to show how to implement&lt;strong&gt; common UI interactions&lt;/strong&gt; we see doing our job but not necessarily easy to find in any tutorial. I started recently and it looks it's gonna be long living project :)&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Fortune&lt;/span&gt;&lt;/strong&gt;: &lt;strong&gt;Currently am working on my own website&lt;/strong&gt;, KayInc.com, but I'm now as passionate as I should be on it, &lt;strong&gt;just got admitted to study medicine so I have to work a little harder for my fees&lt;/strong&gt;. But then am proud of KayInc, it will be the first website that I would be building all alone from &lt;strong&gt;scratch&lt;/strong&gt;, not with a team or anything, &lt;strong&gt;all by myself&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;



&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fnikita-kachanovsky-494828-unsplash.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fnikita-kachanovsky-494828-unsplash.jpg" alt="Motivational quote"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt; &lt;/h1&gt;

&lt;h1&gt;&lt;span&gt;What is for you the best part of this job? and the worst?&lt;/span&gt;&lt;/h1&gt;



&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span&gt;Roy&lt;/span&gt;&lt;/strong&gt;: The best part is working together with other like-minded&lt;strong&gt; people&lt;/strong&gt; and build products that are used by the masses. The worst part is&lt;strong&gt; having to deal with legacy code&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Aurelie&lt;/span&gt;&lt;/strong&gt;: The best part is&lt;strong&gt; the&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;“AHA!”&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;&lt;strong&gt; moment when I find the solution&lt;/strong&gt;. I'm an addict of that feeling when you're stuck and find a way to make your code working. Same every time a test turn green!&lt;/span&gt;&lt;br&gt;
&lt;span&gt;&lt;strong&gt;The worst part is when I have to do repetitive actions&lt;/strong&gt;. Or when I can’t get someone‘s trust on a mission.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt; &lt;span&gt;&lt;strong&gt;Dan&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;The best part of my job as a full-stack dev is being able to &lt;strong&gt;take peoples ideas and turn it into a working product&lt;/strong&gt;. Consequently bringing true happiness to the end user, making their jobs easier and bringing added benefits to the company.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;What is the worst? Hmmm, probably those days when you're stuck on a really complicated problem for hours!&lt;/strong&gt; Even worse, the ones that you can’t figure out before you go to bed, and ping, it’s on your mind all night! Oh, maybe that’s just me.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Emma&lt;/strong&gt;&lt;/span&gt;:&lt;strong&gt; It’s hard to manage my time&lt;/strong&gt;. I’m wearing the hat of a project manager, but also lead designer. &lt;strong&gt;Giving up control of the development was hard for me&lt;/strong&gt;, but was the only way for this project to succeed.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Aman&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;I am currently working as a remote developer, so the best part of my current situation is the amount of time I have available since I do not have to commute. &lt;/span&gt;&lt;span&gt;Laughs out loudly&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;Jokes apart, the best part of being a developer is that it is more than a job and for that reason, the choice &lt;strong&gt;you get to be a part of the wonderful community across the globe&lt;/strong&gt;. Not only you can meet and communicate with vast personalities, you&lt;strong&gt; get to learn new things from them every day or week about the job you do&lt;/strong&gt;. You share your own experiences and people share theirs. You do get a choice to build friendships for life even being born in different geographical locations. &lt;strong&gt;To summarise, you grow as &lt;/strong&gt;a person&lt;strong&gt; too.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mohammad&lt;/strong&gt;&lt;/span&gt;:&lt;strong&gt; The best part of the job is that you can use the most up to date frameworks, programming languages out there to take your skills &amp;amp; development to the next leve&lt;/strong&gt;l, you also have great communities out there that are willing to help, the likes of &lt;strong&gt;FreeCodeCamp&lt;/strong&gt;, &lt;strong&gt;Code Academy&lt;/strong&gt;, the&lt;strong&gt; Laravel Community&lt;/strong&gt; etc. Communicating with other developers is also useful as you can get an insight into how others work.  &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;The worst part for me is when inheriting work from another developer and it’s been done to a very bad standard&lt;/strong&gt;, I think of building websites as building a house, the foundations need to be strong, it needs to be done in such a way that another developer can pick it up and understand what’s going on. Doing a bad job does not look great for you or the company/business/individual you are doing it for. &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Inne&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;strong&gt;&lt;span&gt;The best part in teaching other moms is that we gave the moms an exciting experience outside their daily job&lt;/span&gt;&lt;/strong&gt; &lt;span&gt;(house chores,&lt;/span&gt;&lt;span&gt; taking care of the kids etc), we also helped them to understand about how things work in the internet. &lt;strong&gt;The worst part is, many women &lt;/strong&gt;are still have&lt;strong&gt; less chance to spend time with us to learn together in a classroom. Some of them are not allowed to learn by their husbands/ men.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Sean&lt;/span&gt;&lt;/strong&gt;: People are people. We like doing new, fun, and exciting things and a lot of work is&lt;/span&gt;&lt;br&gt;
&lt;span&gt;anything but those things. Changing your perspective on whenever you feel bored or&lt;/span&gt;&lt;br&gt;
&lt;span&gt;frustrated; &lt;strong&gt;knowing that this leads to what you want or is a part of the greater whole can help &lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span&gt;you break free from that view where things are&lt;/span&gt; &lt;span&gt;“best/worst”.&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
 &lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mike&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;&lt;strong&gt;I mostly love &lt;/strong&gt;the creative&lt;strong&gt; process and working with an environment where aesthetics is a big deal.&lt;/strong&gt; The hardest part&lt;/span&gt; &lt;span&gt;(I&lt;/span&gt;&lt;span&gt; wouldn't call it worst) &lt;strong&gt;is to be able &lt;/strong&gt;do&lt;strong&gt; deliver a unified experience for a countless number of different devices.&lt;/strong&gt; Sometimes I just want to give up but I think web is getting better every year.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Fortune&lt;/span&gt;&lt;/strong&gt;: &lt;strong&gt;The best part of being a software developer is the joy that comes when your code works, trust me it's heaven!&lt;/strong&gt; I mean after a session of searching for bugs and your code works as expected, it's pure bliss, and &lt;strong&gt;when people also appreciate what you do, its something special to a developer. &lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;The worst part of this job is not getting enough for what you do, personally, I've worked with a few teams, and it's sad when they give you peanuts for work you've done well. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fmy-life-through-a-lens-110632-unsplash.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthecoderswag.com%2Fwp-content%2Fuploads%2F2019%2F03%2Fmy-life-through-a-lens-110632-unsplash.jpg" alt="Motivational quote"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span&gt;Give to your younger self and advice that you find extremely useful, and leave us with a prediction for the future of coding in 2019!&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Roy&lt;/span&gt;&lt;/strong&gt;: The best advice I could have given to myself was to &lt;strong&gt;start sharing knowledge with other developers sooner&lt;/strong&gt;. &lt;strong&gt;By learning together with others you can achieve much more&lt;/strong&gt;, and situations, where you would get stuck, can be avoided easier. In the near future,&lt;strong&gt; I see frontend developer getting much more important, as applications get more and more complicated.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Aurelie&lt;/span&gt;&lt;/strong&gt;: To my younger self, I would say:&lt;/span&gt;&lt;strong&gt; &lt;span&gt;"Believe&lt;/span&gt;&lt;span&gt; in you and be patient, you will learn and one day you will teach and help others. You are capable: keep trying, keep coding!" &lt;/span&gt;&lt;/strong&gt;&lt;span&gt;I don't know how the future will be, but I'm sure of one thing: as we learn how to automate boring stuff, new questions will be raised. &lt;strong&gt;We will be facing more and more challenging problems and I’m am very excited to bring solutions!&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Dan&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;strong&gt;&lt;span&gt;My advice to a younger self would be to always jump in at the deep end, no matter how scared you are. Don’t be afraid of learning something new also.&lt;/span&gt;&lt;/strong&gt; &lt;span&gt;My prediction for 2019 is that this new Development environment&lt;/span&gt; &lt;span&gt;(&lt;strong&gt;Kite&lt;/strong&gt;)&lt;/span&gt;&lt;span&gt; coding-helper is going to be a major game-changer for developers.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Emma&lt;/strong&gt;&lt;/span&gt;: &lt;strong&gt;Make the most out of your time&lt;/strong&gt;. Don’t multitask. Prioritize and focus on one task at a time. To-do lists are a great way to remember everything.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Aman&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;If I had a chance to get access to time machine even for few minutes and go back in time and leave an advice for my younger self,&lt;strong&gt; I would say, start as early as possible&lt;/strong&gt;, &lt;strong&gt;as fast you can and build things&lt;/strong&gt;. You get to validate your ideas only if you have something available to show to the world. &lt;strong&gt;Your ideas are going to suck, you will sweat over silly errors of your own, but that’s okay. Keep iterating.&lt;/strong&gt; Iteration is an important aspect in any programming language&lt;/span&gt; &lt;span&gt;(to&lt;/span&gt;&lt;span&gt; look it that way).&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;I cannot predict the future solely on my observations and experience. If React Native interests you in any way, do look out for it. &lt;strong&gt;The way it is being currently revamped&lt;/strong&gt;, I think&lt;strong&gt; building a mobile app is going to be more accessible and with less hassle using it.&lt;/strong&gt; Also, there is a thing called &lt;/span&gt;&lt;span&gt;&lt;b&gt;serverless.&lt;/b&gt;&lt;/span&gt;&lt;span&gt; If you are into web programming or a web developer, you have probably heard about it. If not, do not let that word go unseen.&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Mohammad&lt;/strong&gt;&lt;/span&gt;: Good question, I’m not sure what the future holds for coding, but all I know is whatever happens the only way is up and &lt;strong&gt;the possibilities are endless.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;span&gt;&lt;strong&gt;Inne&lt;/strong&gt;&lt;/span&gt;: &lt;/span&gt;&lt;span&gt;If you see failure, take a step backwards, embrace yourself and &lt;strong&gt;run through it.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Sean&lt;/span&gt;&lt;/strong&gt;: Don’t get discouraged. The world was invented by people just like you. It seems&lt;/span&gt;&lt;br&gt;
&lt;span&gt;impenetrably complex at times, but it’s really not. &lt;strong&gt;Stay positive and really notice what you have &lt;/strong&gt;&lt;/span&gt;&lt;span&gt;&lt;strong&gt;around you already and what you can do with it&lt;/strong&gt;. I think front-end development is starting to &lt;/span&gt;&lt;span&gt;stabilize. &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;It’s a huge stack on its own which makes learning difficult but it should become a set &lt;/span&gt;&lt;span&gt;of almost standards soon. Not decided on by a committee but determined by popularity, which &lt;/span&gt;&lt;span&gt;I don’t think will swing wildly as it has in the past.&lt;strong&gt; Learn React, TypeScript, and Rust.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Mike&lt;/span&gt;&lt;/strong&gt;: &lt;/span&gt;&lt;strong&gt;Finish this fu**ing thing before you move on to another projec&lt;/strong&gt;t, the&lt;span&gt; smallest crappy and finished thing is better than the best but never finished idea. &lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;My prediction for 2019. More web developers will be using CSS grid&lt;/span&gt; &lt;span&gt;(I&lt;/span&gt;&lt;span&gt; hope, if you start you cannot get back).&lt;/span&gt;&lt;br&gt;
 &lt;br&gt;
&lt;span&gt;&lt;strong&gt;&lt;span&gt;Fortune&lt;/span&gt;&lt;/strong&gt;: To my younger self, &lt;strong&gt;" Tech is art, so make it beautiful, use all resources you have to learn, network and build to make lives better for humanity". &lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
&lt;span&gt;In 2019, there will be a lot of breakthroughs in software development, more young people will join the software dev. industry and there will be a lot of migration of African software developers to Europe, especially Germany. &lt;/span&gt;&lt;/p&gt;

&lt;h1&gt;Useful references for the article&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Roy Derks: &lt;a href="https://twitter.com/gethackteam" rel="noopener noreferrer"&gt;@gethackteam&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Aurelie Ambal: &lt;a href="https://twitter.com/Souvir" rel="noopener noreferrer"&gt;@Souvir&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dan Englishby: &lt;a href="https://twitter.com/DanEnglishby" rel="noopener noreferrer"&gt;@DanEnglishby&lt;/a&gt;, personal blog: &lt;a href="https://www.codewall.co.uk/" rel="noopener noreferrer"&gt;CodeWall&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Emma: &lt;a href="https://twitter.com/EmmaWedekind" rel="noopener noreferrer"&gt;@EmmaWedekind&lt;/a&gt;, &lt;a href="https://codingcoach.io/" rel="noopener noreferrer"&gt;CodingCoach&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Aman:&lt;a href="https://twitter.com/amanhimself" rel="noopener noreferrer"&gt;@amanhimself&lt;/a&gt;, &lt;a href="http://www.medium.com/@amanhimself" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;, &lt;a href="https://upscri.be/e51a31/" rel="noopener noreferrer"&gt;Newsletter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Mohammad: &lt;a href="https://twitter.com/RHJOfficial" rel="noopener noreferrer"&gt;@RHJOfficial&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Inne: &lt;a href="https://twitter.com/inne_ria" rel="noopener noreferrer"&gt;@inne_ria&lt;/a&gt;, &lt;a href="https://twitter.com/codingmum_id" rel="noopener noreferrer"&gt;CodingMum Community&lt;/a&gt;, &lt;a href="http://www.bekraf.go.id/berita/page/8/tiga-alumni-coding-mum-terima-penghargaan" rel="noopener noreferrer"&gt;Alumni Award&lt;/a&gt;, &lt;a href="https://medium.com/@innera" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Sean: &lt;a href="https://twitter.com/SeanAguinaga" rel="noopener noreferrer"&gt;@SeanAguinaga &lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Mike Skowronek: &lt;a href="https://twitter.com/coderitual" rel="noopener noreferrer"&gt;@coderitual&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fortune Kelechi Ikechi: &lt;a href="https://twitter.com/fortune_ikechi" rel="noopener noreferrer"&gt;@fortune_ikechi&lt;/a&gt;, &lt;a href="http://KayInc.com" rel="noopener noreferrer"&gt;Personal Project&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;



</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>Learning To Code By Making Amazing Games</title>
      <dc:creator>Piero Borrelli</dc:creator>
      <pubDate>Wed, 05 Jun 2019 13:28:42 +0000</pubDate>
      <link>https://dev.to/borrellidev/learning-to-code-by-making-amazing-games-bj6</link>
      <guid>https://dev.to/borrellidev/learning-to-code-by-making-amazing-games-bj6</guid>
      <description>&lt;p&gt;Can you remember what your first coding project was? well, I actually can…. &lt;br&gt;I was an eleven years old game addict little kid who had some crazy ideas in his mind.&lt;strong&gt; I wanted to make a game! &lt;/strong&gt;and the game I was going to develop would have been the best game ever seen. Something nobody would have ever imagined of. How could all those millionaire companies like Rockstar, Bethesda and Square Enix not be thinking about making such a great game like the one I was going to make? &lt;br&gt;And then I started, I grabbed my dad’s laptop and I started to search on the web how to do that. And what eventually I came up with was this: &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ummFlXjN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225629775_VisualBasicStartPage_lg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ummFlXjN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225629775_VisualBasicStartPage_lg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A visual basic express IDE on, I heard it was easy to use and so I thought it would only take minutes for me to make a game with this. &lt;br&gt;&lt;strong&gt;I was wrong….&lt;/strong&gt;&lt;br&gt;Not only I discovered that I had to learn to program first in order to make a game, but I also learned that making a game was incredibly hard. But I wasn’t going to drop, I wasn’t going to fail on my mission of creating the next game of the year. And after a lot of copy/paste and internet navigation what I came out with was something like this: &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EoGaZEVn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225515558_Y2XBvF.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EoGaZEVn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225515558_Y2XBvF.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was just a couple of years later that I would have then started to really dig into programming by reading books, writing C++ code and using online resources. I completed a lot of small projects and even made some games I created using GameMaker studio and other great tools. &lt;br&gt;That little kid experience I had, plus all the project I made, either games or classic ones made me realize something very important: &lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;strong&gt;One of the most important factor one learning to program is what project you will be able to implement using a certain language and, how quickly you will be able to implement them. &lt;/strong&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Which basically translates into:&lt;/p&gt;

&lt;p&gt; &lt;strong&gt;no matter how passionate you are about coding and how strong your desire is, if you don’t implement some cool projects you will soon lose the will to go on. &lt;/strong&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;This is also the reason why I think some languages are better to start for a beginner, because they provide many ways in which you can use them in order to create cool projects and learn. And that’s where games come into play: they are a fun, visual entertaining way to learn to program. And now the offer online for learning how to create games in an easy way is incredibly higher than when I started. You can use game engines, online coding tools, create games and compete with other players, mod your favourite game, the offer is incredible and everyone can cherry pick the best option for them. &lt;/p&gt;

&lt;p&gt;&lt;br&gt;And this is the point of this article, to explain to you how to learn programming by making games! how you can use this medium to create great adventures while learning to code and still having fun! but first, keep in mind that I would like to clarify a couple of things before going on with a showcase of all the tools you might use: &lt;br&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Making games doesn’t mean playing games&lt;/strong&gt;: what I mean by saying this is that programming a game is very different than playing one, you are still a programmer and so you will still face bugs, configuration problems and other classic obstacles that everyone before you faced and is facing every day. &lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Making games isn’t the only way to learn coding: &lt;/strong&gt;games are a great way to start, but they are not the only good road you can follow. You might start to learn&lt;strong&gt; Html &amp;amp; CSS&lt;/strong&gt; and then &lt;strong&gt;Javascript&lt;/strong&gt;, in that way you could still have fun along the way by creating cool websites. You could learn programming by making simple applications or by using systems like &lt;strong&gt;Arduino &lt;/strong&gt;or &lt;strong&gt;Raspberry&lt;/strong&gt;. &lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Making games will necessarily require to learn other stuff: &lt;/strong&gt;if your target is to only focus on programming then games might not be for you. Keep in mind that making a game will require you to learn things that are separated from programming, like sprites, how animations work, the game loop, collisions etc. So if you only want a raw, terminal-like experience with a programming language then you might reconsider the game option. &lt;/li&gt;&lt;/ul&gt;





&lt;p&gt;This guide won’t be helpful only for people who want to start to learn programming in 2019 by making games but also for people who are already developing them and that might discover some new tools here. &lt;br&gt;Let’s start!&lt;br&gt;&lt;/p&gt;





&lt;h2&gt;GameMaker&lt;/h2&gt;





&lt;p&gt;GameMaker is a game engine built with the intention to bring 2d game development to everyone out there willing to learn it.&lt;br&gt;&lt;/p&gt;





&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_8wlXiXj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225459303_GmsDraw.png" alt=""&gt;





&lt;p&gt; You will be able to build games using either its drag and drop system (which is great to learn the fundamentals of programming) or its built-in programming language called GML. With GML you won’t only learn to use a programming language but you will also be able to expand a game to your will. There are great resources out there including: &lt;br&gt;&lt;/p&gt;





&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Game maker &lt;/strong&gt;&lt;a href="https://www.yoyogames.com/learn" rel="noreferrer noopener"&gt;&lt;strong&gt;learn section&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;This two beginner books for making games using drag and drop: &lt;/strong&gt;&lt;a href="https://www.amazon.com/Game-Makers-Apprentice-Development-Beginners/dp/1590596153" rel="noreferrer noopener"&gt;&lt;strong&gt;here &lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;and &lt;/strong&gt;&lt;a href="https://www.amazon.com/Game-Makers-Companion-Technology-Action/dp/1430228261/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1549224823&amp;amp;sr=1-1&amp;amp;keywords=the+game+maker+companion" rel="noreferrer noopener"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;This &lt;/strong&gt;&lt;a href="https://www.amazon.com/GameMaker-Language-InDepth-Guide-Cover/dp/1329419561/ref=sr_1_fkmr0_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1549224840&amp;amp;sr=1-1-fkmr0&amp;amp;keywords=learn+gml" rel="noreferrer noopener"&gt;&lt;strong&gt;book &lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;to learn how to use GML&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Code Combat&lt;/h2&gt;

&lt;p&gt;Code Combat is an online platform that follows one simple purpose:&lt;strong&gt; to teach everyone to code by creating engaging games&lt;/strong&gt;. There are different sections, each one dedicated to a particular aspect of development, and if that wasn’t enough, Code Combat is also an open project that will allow you to build your own levels, modify games behaviour and help other people to grow. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gKKBTDzh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549226787123_maxresdefault.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gKKBTDzh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549226787123_maxresdefault.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Unity&lt;/h2&gt;

&lt;p&gt;The Unity game engine is not only of the most advanced, feature-rich tools for both 2d/3d game development out there you can find, but it’s also been used for literally &lt;a href="https://unity.com/madewith?_ga=2.13643447.1808752790.1549224602-1607968678.1549224602" rel="noreferrer noopener"&gt;thousands &lt;/a&gt;of game out there. Many of them even became very &lt;a href="https://www.youtube.com/watch?v=oCxv0twTww4" rel="noreferrer noopener"&gt;famous&lt;/a&gt;.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hhgi4X6d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225370166_Grome_ui_objnity-engine.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hhgi4X6d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225370166_Grome_ui_objnity-engine.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Unity you will be able to build games using the C# programming language, which, after some practice can be used to create pretty complex games. One of the best parts of this tool is also the number of resources out there you can look up to in order to learn it, here are some of the best: &lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a rel="noreferrer noopener" href="https://www.udemy.com/unitycourse/"&gt;&lt;strong&gt;Learn C# by making 2d games &lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="noreferrer noopener" href="https://www.udemy.com/unitycourse2/"&gt;&lt;strong&gt;Learn C# by making 3d games&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="noreferrer noopener" href="https://unity3d.com/"&gt;&lt;strong&gt;Official Unity learning resources&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;h2&gt;Unreal engine&lt;/h2&gt;

&lt;p&gt;Here is another killer game engine you might want to start using. Unreal engine is an industry top level game engine that was involved in creating incredibly &lt;a href="https://www.gamepedia.com/blogs/639-the-10-most-glorious-games-made-with-the-unreal" rel="noreferrer noopener"&gt;successful &lt;/a&gt;games out there. You will be writing C++ code in order to meet every ambitious idea you might have about how a game should be done. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dLvM_ifL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549226900148_unreal-engine.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dLvM_ifL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549226900148_unreal-engine.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;With a full package that will make you able to ship a quality product from the beginning up to the final stages of development, Unreal Engine is for sure one of the best solutions out there especially for more experienced developers. But don’t be discouraged by its complexity, Unreal also offer a great visual system called BluePrint used to create games without coding skills!&lt;br&gt;Here are some of the best resources to learn it: &lt;br&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unreal engine&lt;/strong&gt;&lt;a href="https://academy.unrealengine.com/" rel="noreferrer noopener"&gt;&lt;strong&gt; learn section&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/unrealcourse/" rel="noreferrer noopener"&gt;&lt;strong&gt;Learn C++ with Unreal&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;CodinGame&lt;/h2&gt;

&lt;p&gt;CodinGame is a challenge-based platform for developers that want to improve their programming skills by solving fun and compelling game-based problems. It has a great community and support for over 25 programming languages. With CodinGame you will also be able to challenge other players online and learn new programming concepts in a funny and friendly way. The website also offers the possibility to join in what are basically tournaments where the developer who found the best solution for a problem can receive prizes and be noticed by important companies. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bI9WdgDW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225327008_Immagine.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bI9WdgDW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225327008_Immagine.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;Game development is a funny, visually engaging, and friendly way to learn development. I hope this guide helped you to understand how much power you can find in games and how much they can help you to start learning to code.&lt;/p&gt;

&lt;p&gt;Whether you will be practising by yourself, with your little brother, or even with your kid, you will always be able to grow technically while having a lot of fun and maybe on day even decide to publish a game you made!&lt;/p&gt;





&lt;p&gt;Stay tuned for more articles, Piero Borrelli&lt;/p&gt;







</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>Impress your colleagues with these NPM tricks</title>
      <dc:creator>Piero Borrelli</dc:creator>
      <pubDate>Mon, 13 May 2019 22:20:35 +0000</pubDate>
      <link>https://dev.to/borrellidev/impress-your-colleagues-with-these-npm-tricks-3fcb</link>
      <guid>https://dev.to/borrellidev/impress-your-colleagues-with-these-npm-tricks-3fcb</guid>
      <description>&lt;h1&gt;&lt;/h1&gt;

&lt;p&gt;Just like anyone else, developers enjoy knowing some little tricks to show to their colleagues or friends. Today, I have decided to write about some of these keyboard magic that you can use when working with the Node Package Manager (&lt;strong&gt;NPM&lt;/strong&gt;). These won’t only impress you and the people around you, but will also make your workflow definitely faster and more concise. So now that we made this little premise, let’s start to analyze these tricks! &lt;br&gt;&lt;/p&gt;

&lt;h2 id="mce_3"&gt;#1 Package initialization&lt;/h2&gt;

&lt;p&gt;Do you want to quickly initialize a new package? Are you tired of those infinite system questions that appear when doing so? Then &lt;strong&gt;run npm init-&lt;/strong&gt;y or &lt;strong&gt;npm init-f.&lt;/strong&gt;These commands will allow you to skip those questions and jump straight into your next amazing project!&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427003402_carbon%2B15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427003402_carbon%2B15.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;&lt;/h1&gt;

&lt;h2 id="mce_5"&gt;#2 Opening a package’s homepage&lt;/h2&gt;

&lt;p&gt;Are you working with a cool npm package you just discovered? Do you want to check its homepage to read the documentation? Then run &lt;strong&gt;npm home“your-package”.&lt;/strong&gt;This command will bring you &lt;strong&gt;directly to the page&lt;/strong&gt; you were looking for!&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427086472_carbon%2B18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427086472_carbon%2B18.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;#3 Opening a package’s GitHub Repository&lt;/h2&gt;

&lt;p&gt;Similarly to the command described above, running &lt;strong&gt;npm repo&lt;/strong&gt;&lt;strong&gt;“your-package”&lt;/strong&gt; will take you directly to a webpage. But this time, you will get automatically redirected to the&lt;strong&gt; package official GitHub repository. &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427071623_carbon%2B17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427071623_carbon%2B17.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;#4 List all the installed packages&lt;/h2&gt;

&lt;p&gt;Why should we waste our time by opening the &lt;strong&gt;package.json &lt;/strong&gt;file to check what packages we have installed? Simply run &lt;strong&gt;npm ls - - depth 0 &lt;/strong&gt;and you will get the informations you were looking for. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427205386_carbon%2B19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427205386_carbon%2B19.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;#5 List the available scripts&lt;/h2&gt;

&lt;p&gt;New project new scripts right? but again, having to go through the &lt;strong&gt;package.json &lt;/strong&gt;file can be tedious and time-consuming. Let’s get this list by running the &lt;strong&gt;npm run &lt;/strong&gt;command instead!&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427307018_carbon%2B20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427307018_carbon%2B20.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;#6 Check packages that are not declared in package.json&lt;/h2&gt;

&lt;p&gt;Another useful command, use &lt;strong&gt;npm prune &lt;/strong&gt;for performing this operation. This command will run through your &lt;strong&gt;package.json &lt;/strong&gt;file and compare its content with the &lt;strong&gt;/node_modules&lt;/strong&gt; content. You will receive as an output a list of all those packages that are not in the &lt;strong&gt;package.json &lt;/strong&gt;file. After doing this, &lt;strong&gt;npm prune &lt;/strong&gt;will remove those packages together with those which you haven’t added manually to &lt;strong&gt;package.json&lt;/strong&gt; or that were&lt;strong&gt; npm install&lt;/strong&gt;ed without the &lt;strong&gt;-&lt;/strong&gt;&lt;strong&gt;-save&lt;/strong&gt; flag. &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427786666_carbon%2B28.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427786666_carbon%2B28.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;#7 Bump a package version&lt;/h2&gt;

&lt;p&gt;Need to bump a package? Simply run &lt;strong&gt;npm &lt;/strong&gt;together with &lt;strong&gt;minor/major/patch &lt;/strong&gt;command. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427412393_carbon%2B21.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427412393_carbon%2B21.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;#8 Running a test&lt;/h2&gt;

&lt;p&gt;You are probably already running the &lt;strong&gt;npm run test &lt;/strong&gt;command many times a day right? but why not using the shorter version &lt;strong&gt;npm t &lt;/strong&gt;which is exactly the same!&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427466097_carbon%2B22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427466097_carbon%2B22.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;Bonus commands&lt;/h1&gt;

&lt;p&gt;Still hungry for some more npm useful command shortcuts? Then check out this bonus list I have prepared for you. &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;Package installation&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427663717_carbon%2B25.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427663717_carbon%2B25.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Global package installation&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427620976_carbon%2B24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427620976_carbon%2B24.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Package installation + saving as a dev dependency &lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427734993_carbon%2B27.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427734993_carbon%2B27.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Package installation + saving as a dependency &lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427699826_carbon%2B26.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fd2mxuefqeaa7sj.cloudfront.net%2Fs_B55F67F05B8C352284B6DC7858640513965665824D642D96BB9E833CD76825D6_1552427699826_carbon%2B26.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h1&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;Being able to impress your colleagues is great, but leaving this article being aware of all the tricks you can learn when working with a technology is even better. Hope this article helped you to discover some tricks you didn’t know about before reading it and that it inspired you to go deeper when learning something new!&lt;br&gt;&lt;/p&gt;

&lt;p&gt;To be up-to-date with content like this, don't forget to stay tuned with my blog: &lt;a href="https://thecoderswag.com/" rel="noopener noreferrer"&gt;TheCoderSwag.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>A Complete Introduction Guide To TypeScript</title>
      <dc:creator>Piero Borrelli</dc:creator>
      <pubDate>Tue, 07 May 2019 10:31:04 +0000</pubDate>
      <link>https://dev.to/borrellidev/a-complete-introduction-guide-to-typescript-4a66</link>
      <guid>https://dev.to/borrellidev/a-complete-introduction-guide-to-typescript-4a66</guid>
      <description>&lt;h2&gt;&lt;/h2&gt;

&lt;p&gt;As the power of TypeScript has been rising during the last few years, thousands of developers decided to start using this &lt;a href="https://thecoderswag.com/you-absolutely-have-to-learn-typescript-in-2019/"&gt;Javascript superset&lt;/a&gt; to empower their code even more. This guide aims to be a quick primer for all the developers out there who would like to learn how to use TypeScript and use it in their next project.  &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;#1 The word Types means: use them!&lt;/h2&gt;

&lt;p&gt; One of the biggest features of TypeScript is &lt;strong&gt;compile time type-checking&lt;/strong&gt; to prevent any &lt;strong&gt;mismatch &lt;/strong&gt;in the types you are using for your variables and yes, you can actually use types in TypeScript, here are some examples about how you can use them:  &lt;/p&gt;

&lt;pre class="EnlighterJSRAW"&gt;// legal
let isReady : boolean = false; 
let decimal : number = 20;     
let name    : string = "Dev.to";
let numbers : number[] = [1,2, 3]; 

// illegal
let isReady : boolean = 10; 
let decimal : number = "not a number";     
let name    : string = true;
let numbers : number[] = "not an array of numbers"; &lt;/pre&gt;



&lt;h3&gt;#1.1 Can I use multiple types for my variables?&lt;/h3&gt;



&lt;p&gt; Of course you can, by simply using the &lt;strong&gt;any&lt;/strong&gt; type for one of your variables you will be able &lt;strong&gt;to assign different value types&lt;/strong&gt; like:  &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;let unknown : any = 30; 
unknown = "what is this variable?";&lt;/pre&gt;



&lt;p&gt; If you want to &lt;strong&gt;restrict the types you can assign &lt;/strong&gt;to your variables, you can eventually use the pipe operator like this:  &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;let multiple : boolean | number = 10; 
multiple = true; // still valid&lt;/pre&gt;



&lt;h3&gt;#1.2 What if don’t want to specify the type of a variable?&lt;/h3&gt;



&lt;p&gt;No problem! TypeScript supports &lt;strong&gt;both implicit and explicit typing&lt;/strong&gt;. In the first case, you will be specifying variables’ types precisely like we have seen up to this point, in the second case,&lt;strong&gt; the type will be automatically assigned to a variable whenever you first initialize it&lt;/strong&gt; a value, this mechanism is better known as &lt;strong&gt;type inference&lt;/strong&gt;.   &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;let explicit : number = 10; // explicitily using the type 'number'
let implicit = 10; // inference of the type 'number'&lt;/pre&gt;



&lt;p&gt; Notice how type inference comes in handy in other useful cases like function return values:  &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;// inference will set 'number' as the return type for this function
function add(a: number, b: number) {
    return a + b;
}&lt;/pre&gt;



&lt;h3&gt;#1.3 Can I check the type of my variables?&lt;/h3&gt;



&lt;p&gt;Wanna make sure you are using the right type? the right class? you can use that by using the &lt;strong&gt;instanceof&lt;/strong&gt; operator like this:  &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;import { Cake } from './cake.model'; 
let cake = new Cake('eggs', 'milk');

if (cake instanceof Cake) {
    console.log("We've got a cake here!"); 
}&lt;/pre&gt;



&lt;p&gt; This is especially useful for &lt;strong&gt;user defined types&lt;/strong&gt; and it will also work when you are inheriting properties from another object.  &lt;/p&gt;



&lt;h3&gt;#1.4 Can I convert the types of my variables?&lt;/h3&gt;



&lt;p&gt;This type of operation is typically known as &lt;strong&gt;casting&lt;/strong&gt; and it can be performed in special cases in TypeScript where we might need to handle a variable using a specific type. Let’s suppose you defined a variable of type &lt;strong&gt;any &lt;/strong&gt;but you now want to use some common &lt;strong&gt;string &lt;/strong&gt;functions on that variable &lt;strong&gt;that you cannot access now&lt;/strong&gt; since the type is not string, you can tell TypeScript to handle that variable as a such using: &lt;/p&gt;







&lt;pre class="EnlighterJSRAW"&gt;let unknown : any; 
let unknown = "hello"; 

console.log("length is : ", (&amp;lt;string&amp;gt;unknown).length); &lt;/pre&gt;



&lt;h2&gt;#2 Working with Arrays&lt;/h2&gt;



&lt;p&gt;Everything that mentioned above can be pretty much adapted when it comes to using Arrays in TypeScript:  &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;// legal
let numbers : number[] = [1, 2, 3]; 
let strings: string[] = ["hello", "good", "world"]; 
let booleans : boolean[] = [true, false, true]; 
let whatever: any[] = ['Hello World', 10];


// illegal 
let numbers : numbers[] = [1, true, 3]; 
let strings: string[] = ["hello", 1, "world"]; 
let booleans : boolean[] = [true, 100, true]; 

// other possibilities include
let numbersAndBooleans = (number | boolean) = [true, 100]; // using the pipe operator
let matrix = number[][] = [[10, 20]]; &lt;/pre&gt;



&lt;h3&gt;#2.1 Using tuples&lt;/h3&gt;



&lt;p&gt;Quite a new concept, tuple types allow you to express an array where the type of a fixed number of elements is known, but need not be the same. Consider if you wanted to represent a value as a pair of a boolean and a number: &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;// Using a tuple
let x: [boolean, number];
x = [true, 10]; // initialization
x = [10, "hello"]; // illegal initialization&lt;/pre&gt;



&lt;h3&gt;#2.2 Something I really missed: Enums!&lt;/h3&gt;



&lt;p&gt;This great addition to Javascript is something that I was really missing from the old days when I would code using Java, enums are basically a set of named constants. There are three types of enums: &lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Numeric Enum&lt;/li&gt;
&lt;li&gt;String enum&lt;/li&gt;
&lt;li&gt;Heterogeneous enum &lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt; In order to not make this article too long, I won’t go into too much detail about enums, just remember that they are especially useful if you want to better document your intent or to create a set of distinct cases like: &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;enum Direction { 
    Up = 1,
    Down,
    Left,
    Right,
}
movePlayer(Direction.Up); &lt;/pre&gt;







&lt;h2&gt;#3 What about objects?&lt;/h2&gt;



&lt;p&gt;Objects are another important part of Typescript, let’s try to analyze them in better detail with an example:  &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;// Javascript definition
let user = {
name: "piero", 
surname: "borrelli"
}

// Typescript definition is the same
let user = {
name: "piero", 
surname: "borrelli"
}

// except that now name and surname will be considered as
{name: string, surname: string}&lt;/pre&gt;



&lt;p&gt; The two properties of the objects we have are inferenced to type string, meaning that any attempt to assign a value of different type to them will be invalid:  &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;    user.name = 35; // invalid
&lt;/pre&gt;

&lt;h3&gt;#3.1 Object type&lt;/h3&gt;

&lt;p&gt;Object is a type that doesn’t fall in the primitive-type category like: boolean, string, number, symbol, null, undefined and it follows this syntax:  &lt;/p&gt;

&lt;pre class="EnlighterJSRAW"&gt;    let user: { name: string, surname: string};
&lt;/pre&gt;

&lt;h2&gt;#4 Functions&lt;/h2&gt;

&lt;p&gt;When it comes to functions, Typescript introduces the possibilty to use types when working with them, the first place we want to use them for example is for function parameters:  &lt;/p&gt;

&lt;pre class="EnlighterJSRAW"&gt;// define types for the function parameters
function test(name: string, surname: string) {
 return name + " " + surname;  
}

let fullName = test("piero", "borrelli"); // legal
let fullName = test(10, "borrelli"); // illegal&lt;/pre&gt;



&lt;p&gt; Another place where you might want to specify a type is when returning a value from a function. Notice that, in the case of the function above, the return type was automatically infered to be of type string. Let’s see how we can explicitly define the return type of a function using:  &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;// define return type for the function
function test(name: string, surname: string): string {
 return name + " " + surname;  
}

// illegal
function test(name: string, surname: string): string {
 return name.length; // will return a number here which is not expected  
}&lt;/pre&gt;



&lt;h2&gt;#5 The OOP part&lt;/h2&gt;



&lt;p&gt;Since the release of ECMAScript 6, Javascript programmers have been able to build their programs using the object-oriented approach. This approach is also supported by Typescript, so let’s try to analyze how we would use it by making some examples: &lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;class Point{
    x: number;
    y: number; 
    constructor(x: number, y: number) {
        this.x = x; // where 'this' refers to the current object
        this.y = y; 
    }
    getPoints() {
        return "x: " + this.x + " y: " + this.y;
    }
}

let Point = new Point(10, 20);&lt;/pre&gt;



&lt;p&gt;

To most of the people out there who have worked with languages like C# or Java this will look extremely familiar, we have a class named Point that has two members x and y, we can access them freely (more on this later) and we also call a class method called getPoints(). We can then create an instance of an object of type Point by using the new keyword. &lt;br&gt;&lt;/p&gt;



&lt;h2&gt;Using access modifiers&lt;/h2&gt;



&lt;p&gt;Not going on too much detail on this since it’s a complete different topic, but keep in mind that in Typescript you can also define access modifiers for your classes’ variables like this: 

&lt;/p&gt;



&lt;pre class="EnlighterJSRAW"&gt;class Point{
   private x: number;
   private y: number; 
    constructor(x: number, y: number) {
        this.x = x; // where 'this' refers to the current object
        this.y = y; 
    }
    getPoints() {
        return "x: " + this.x + " y: " + this.y;
    }
}
&lt;/pre&gt;

&lt;p&gt;

As with basically all the object oriented programming languages, we can use access modifiers to establish who is going to be able to access our class data. By default, public is set as a member default modifier, private and protected are used respectively when you want a member to not be accessible outside of its class(private) and when you want a member to be accessible only inside its class or deriving classes. &lt;br&gt;&lt;/p&gt;

&lt;h2&gt;Inheritance&lt;/h2&gt;

&lt;p&gt;As already mentioned earlier, Typescript supports the most used object-oriented patterns including inheritance. So using Typescript you will be able to define a class and then define a subclass of it which will inherit the superclass base methods and members:  &lt;/p&gt;

&lt;pre class="EnlighterJSRAW"&gt;class Animal {
    move(steps: number = 0) {
        console.log(`Animal moved ${steps}m.`);
    }
}

class cat extends Animal {
    meow() {
        console.log('Meow');
    }
}

const cat= new Cat();
cat.meow();
cat.move(1000);&lt;/pre&gt;

&lt;h2&gt;Interfaces&lt;/h2&gt;

&lt;p&gt;Another common object oriented technique that you might to use it to create an interface. This in possible in Typescript, where the main focus is type-checking, we can use interfaces to give names to these types. So basically when using them we will be creating a group of related methods and members that will describe a particular object:  &lt;/p&gt;

&lt;pre class="EnlighterJSRAW"&gt;interface Box{
   width: number, 
   height: number
}&lt;/pre&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;The idea behind this article was just to be able to give you a quick primer on what you can do with Typescript, how it can help us solve common problems and its different approach with Javascript.&lt;br&gt;Hope it gave you a new vision on something useful!&lt;/p&gt;

&lt;p&gt;If you are interested in going into more detail with TypeScript, you can checkout these resources: &lt;a href="https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html"&gt;here&lt;/a&gt; and &lt;a href="https://code.visualstudio.com/docs/typescript/typescript-tutorial"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;Thanks for reading, &lt;/p&gt;

&lt;p&gt;Piero Borrelli.  &lt;/p&gt;



</description>
      <category>beginners</category>
      <category>frontend</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Why you should know about Electron.js in 2019</title>
      <dc:creator>Piero Borrelli</dc:creator>
      <pubDate>Sun, 14 Apr 2019 15:16:20 +0000</pubDate>
      <link>https://dev.to/borrellidev/why-you-should-know-about-electron-js-in-2019-1f4m</link>
      <guid>https://dev.to/borrellidev/why-you-should-know-about-electron-js-in-2019-1f4m</guid>
      <description>

&lt;p&gt;I won’t lie to you admitting that, with all the Javascript frameworks available out there, &lt;strong&gt;I don’t know most of them. &lt;/strong&gt;And when I say they I don’t know these frameworks I don’t mean that I’m not able to code using them, but that for some of them &lt;strong&gt;I don’t even know about their existence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that’s it, you may call me a developer not well informed, but with all the tools available out there I honestly think it’s very hard to be constantly aware of new releases. This, unless a framework becomes really important or if you just discover it randomly. Just like it happened for me with &lt;strong&gt;Electron.js.  &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I discovered this tool almost as an error, when, during a chat someone mentioned that &lt;strong&gt;Visual Studio Code was a web application.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;I was like: “WHAT?”&lt;/p&gt;

&lt;p&gt;&lt;br&gt;And this person was actually right. Visual Studio Code is a web application, you are even able to inspect its elements if you want. But how is that possible? How can we open what we suppose is a desktop application and then discover that it’s actually a web product?&lt;br&gt;And here comes &lt;strong&gt;Electron.js&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;The platform struggle&lt;/h1&gt;

&lt;p&gt;This framework, like every good technology out there, arises from a necessity. In our modern, always-changing and fast-paced world of development, the ability of being able to create an application and then deploy it to many different platforms using a single codebase has become a serious problem. Relying on the old ways to do that can be extremely &lt;strong&gt;time-consuming &lt;/strong&gt;and &lt;strong&gt;expensive&lt;/strong&gt;, just think about how different the process to develop on Windows/OSX/Linux can be: &lt;br&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt;: applications for this OS are usually realized using C++ or C#. Sometimes the need to be able to use these applications on different sub-ecosystems can arise other problems such as ad-hoc development for Windows Store, Windows phones etc.&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;OSX&lt;/strong&gt;: development for OSX can be quite hard since there are a ton of informations to learn. Usually, when developing for this OS you will have to interact with many “layers” such as &lt;strong&gt;Cocoa&lt;/strong&gt; for the user application interface, &lt;strong&gt;Media &lt;/strong&gt;for media operations and then the &lt;strong&gt;Core Services. &lt;/strong&gt;
&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Linux&lt;/strong&gt;: Ad-hoc libraries are used for the application interface or, alternatively, Python. Other libraries like OpenGL can provide 3d and 2d rendering while the Kernel itself will provide core functionalities. &lt;/li&gt;&lt;/ul&gt;





&lt;p&gt;With all these so-different ways of developing an application, developers struggle to find a way to fast-prototype a project and to deploy a single code base to multiple platforms. &lt;br&gt;And that’s where &lt;strong&gt;Electron.js&lt;/strong&gt; comes in handy!&lt;br&gt;&lt;/p&gt;





&lt;h1&gt;What is Electron.js&lt;/h1&gt;





&lt;p&gt;&lt;strong&gt;Electron.js&lt;/strong&gt; is an open-source framework that allows developers to build GUI desktop applications using components originally developed for a web application. Both on the front-end side and on the back-end. A typical Electron app will be so composed: &lt;br&gt;&lt;/p&gt;





&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;An HTML &amp;amp; CSS part &lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A Node.js part&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A Chromium engine part&lt;/strong&gt;&lt;strong&gt;(Chromium&lt;/strong&gt;&lt;strong&gt; is an open-source web browser )&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Eventually, a front-end framework like Angular, React, Vue. &lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Electron framework will take care of all the hard partsso that companies and developers can focus on the core of the application and make it better.&lt;br&gt;&lt;/p&gt;

&lt;h1&gt;Advantages of Electron.js&lt;/h1&gt;

&lt;p&gt;Let’s try to get an overview of some of the great advantages you can have by making use of this framework: &lt;br&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Reusability&lt;/strong&gt;: since we are making use of only one code base, this can be shared across web applications and desktop applications making them extremely reusable. &lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Making use of UI/UX frameworks&lt;/strong&gt;: since we are making use of a web app code base, we get all the advantages of using front-end frameworks that will make our app look beautiful both in the browser and on the desktop, all with the application still looking the same across systems. &lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Cost and time for realization&lt;/strong&gt;: now that we can use a single code base for all our platforms, we won’t only save a lot of development time because we don’t have to port the application on different systems, but this will also save us a lot of money and expenses for doing so along the way!&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Data security&lt;/strong&gt;: when migrating your web app to the desktop using Electron, all the data will be stored locally. This will make you sure that no data of your app get compromised. &lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Project management&lt;/strong&gt;: still, using a unique code base is a tremendous advantage not only because the tech requirements will be the same across all the platforms, but also because it will save you a lot of time from having to fix errors on multiple code bases. &lt;/li&gt;&lt;/ul&gt;



&lt;h1&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;Electron was an amazing discovery for me, a tool that can make life easier for thousands of developers out there. Hope this article not only showed to you something new, but that it also encouraged to make an effort to try to discover what incredible tools are hiding out there. And just remember that, for Electron, you can even &lt;a href="https://github.com/electron/electron/blob/master/CONTRIBUTING.md" rel="noreferrer noopener"&gt;contribute&lt;/a&gt; to it!&lt;/p&gt;


</description>
      <category>electronjs</category>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
    </item>
  </channel>
</rss>
