<?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: Codesmith Staffing</title>
    <description>The latest articles on DEV Community by Codesmith Staffing (@codesmith_staff).</description>
    <link>https://dev.to/codesmith_staff</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%2F68151%2F5d9fcace-fca9-43fd-9aa0-b5cddfccef59.jpg</url>
      <title>DEV Community: Codesmith Staffing</title>
      <link>https://dev.to/codesmith_staff</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codesmith_staff"/>
    <language>en</language>
    <item>
      <title>Hiring a Junior Developer Isn't As Bad As You Think</title>
      <dc:creator>Codesmith Staffing</dc:creator>
      <pubDate>Thu, 07 Feb 2019 16:42:41 +0000</pubDate>
      <link>https://dev.to/codesmith_staff/hiring-a-junior-developer-isnt-as-bad-as-you-think-4oba</link>
      <guid>https://dev.to/codesmith_staff/hiring-a-junior-developer-isnt-as-bad-as-you-think-4oba</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--09-HtKSg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/j64km6skchkqci5m2uzx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--09-HtKSg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/j64km6skchkqci5m2uzx.jpg" alt="webdev"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Original article was posted on &lt;a href="https://codesmithdev.com/hiring-a-junior-developer-isnt-as-bad-as-you-think/"&gt;Codesmith Dev&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Experience is one of the most valuable traits in the job market–and for good reasons. Someone with more seniority wouldn’t need supervising and training. Rookie mistakes are not expected from someone with years in a particular industry, especially an industry like software engineering. Often, developers are working on mission critical tasks that can affect the future of the company. With all that said, hiring a senior engineer over a junior engineer seems like a no-brainer. &lt;/p&gt;

&lt;p&gt;The issue is that there is a shortage of senior engineers, which means a handful of the best companies are bidding for the best talent. Though the idea of the software developer shortage has been claimed to be a myth, what many would agree is that there is a shortage of &lt;a href="https://dev.to/nathanepstein/what-is-a-10x-programmer"&gt;10x developers&lt;/a&gt;. There was a &lt;a href="https://www.ybrikman.com/writing/2013/09/29/the-10x-developer-is-not-myth/"&gt;great article&lt;/a&gt;, written by Yevgeniy Brikman, that tackled the concept of these seemingly mythical developers that you can check out in order to gain a better understanding of what they are. These developers are every HR  Manager’s dream. Their output supposedly matches that of 10 of your worst developers. They’re the sort of developers that encourage job postings desiring 5 years of experience with a framework that is only 2 years old, just to be able to attract said unicorn. &lt;/p&gt;

&lt;p&gt;With high demand and limited supply comes cost, if we’re to follow the basic principle of supply and demand. It goes without saying that staffing an entire team with senior developers is expensive. In many situations, the amalgamation of talent produces results that offsets salary overhead, but there is always the risk of turnover and a new hiring cycle. &lt;/p&gt;

&lt;p&gt;The question then arises, how can one keep talent that will allow their company to produce at a consistent level if they’re not the Microsofts of the world or the hottest new startup on the scene? For smaller shops looking to maintain consistent production, the answer may be grooming Junior Developers. Robert C Miller, one of the authors of the Agile Manifesto, wrote a &lt;a href="http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html"&gt;blog post&lt;/a&gt; 5 years ago highlighting the lopsided ration of programmers under 28 compared to those over 40. &lt;/p&gt;

&lt;p&gt;What he concluded was that the few engineers with 10-15 years of could act as mentors to a young crop of engineers, saying,&lt;/p&gt;

&lt;p&gt;"As a leader, that programmer can teach the team about principles, patterns, practices, and ethics. That leader can temper and curb the youthful enthusiasm that leads to premature decisions about frameworks and architectures. That leader can help to instill the value of refactoring and clean code, as a counterweight to the youthful thrill of gettingittowork. That leader can encourage the team to work hard for eight hours, and then to leave work so that they are fresh the next day. This would prevent burnout, resentment, the false sense that hours equals work, and the insidious dependence upon, and value of, heroics."&lt;/p&gt;

&lt;p&gt;The key to instilling this team-first mentality within the development team is to change the common conceptions associated with hiring junior developers.&lt;/p&gt;

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

&lt;p&gt;While experience is king, it is important to highlight problem solving experience as opposed to language experience. A language can be learned in a few months, but problem solving is a skill that takes years to hone. Weeding out applicants who may not have X amount of years spent with one language can be futile if that same person then has to learn a legacy language just to maintain code that may be poorly documented.&lt;/p&gt;

&lt;p&gt;What you want is someone who can understand business logic and juggle multiple priorities. When looking at a potential candidate from this perspective, a company can instill a growth mindset within the team that fosters exploration.&lt;/p&gt;

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

&lt;p&gt;How can a junior developer contribute to the team? What impact will they have besides draining precious time away from senior developers? These are questions that can be dispelled by the fact that work culture affects the well-being of workers. According to a study conducted by the American Psychological Association, about 60% to 80% of workplace accidents are attributed to stress. A Harvard Business Review article written in 2015 cited that, according to several studies, positive interactions  between coworkers produces positive health results. &lt;/p&gt;

&lt;p&gt;When junior devs are placed among senior devs, they have the potential of bringing a love for coding that may have been lost by some of the senior devs. The mentor/mentee relationships can build strong bonds between team members as senior developers may feel that their value within their company increase as they mentor up and coming developers.&lt;/p&gt;

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

&lt;p&gt;The lost opportunity cost of having a senior engineer take time out of their schedule to mentor a junior dev may seem like a reason to never hire a junior dev, but the long term benefits should not be ignored.  A junior dev who experiences mentorship from great developers may then become an evangelist for your company.&lt;/p&gt;

&lt;p&gt;As their network grows, they may be able to refer talented engineers to your company. More importantly, you create a talent pipeline that allows you to promote within the company. Former junior devs that were mentored well will most likely return the favor and mentor new junior devs.&lt;/p&gt;

&lt;h2&gt;
  
  
  In The End
&lt;/h2&gt;

&lt;p&gt;This is not to say that a company must hire a junior developer. There are some business models–like those of software development agencies–that cannot practically train junior developers.&lt;/p&gt;

&lt;p&gt;Also, hiring a good junior dev isn’t much easier than hiring a good senior dev. There is always a list of pros and cons to weigh before making any decision. The point here is that, to those who may feel that junior devs are unhirable under any circumstance, there are legitimate reasons for focusing hiring efforts on junior devs.&lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>Best Coding Bootcamps of 2019</title>
      <dc:creator>Codesmith Staffing</dc:creator>
      <pubDate>Thu, 17 Jan 2019 18:47:17 +0000</pubDate>
      <link>https://dev.to/codesmith_staff/best-coding-bootcamps-of-2019-1l2k</link>
      <guid>https://dev.to/codesmith_staff/best-coding-bootcamps-of-2019-1l2k</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--__Cg2Y9B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/jg8vgdohpmdl40c6mfy7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--__Cg2Y9B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/jg8vgdohpmdl40c6mfy7.jpg" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Committing to a coding bootcamp is going to be one of the most important financial decisions you make in your life. Not only are you investing thousands of dollars into the equivalent of a college semester, you are sacrificing monthly paychecks at your current job. You want to be assured that the training you receive at the bootcamp you finally decide to go to is relevant to the type of job you expect to get coming out.&lt;/p&gt;

&lt;p&gt;There are several factors to consider when selecting a bootcamp. For many, the bootcamp’s location may be the limiting factor. Some bootcamps like General Assembly are international, some like Epicodus are regional, and others like Bloc are purely remote. For some people, a remote schedule is a great compromise while others may prefer a physical location where they get to interact with team members and other career staff. Finally, coding bootcamps vary in their focus on coding languages. Some may have a heavy focus on Ruby while others may focus solely on JavaScript.&lt;/p&gt;

&lt;p&gt;One thing to note about the top flight programs in this list is that their screening process tends to be rigorous. They may involve several rounds of behavioral interviews as well as technical interviews. It’s an open secret that the best bootcamps pad their employment statistics by accepting self taught programmers and computer science grads. Even those that make it through the screening process are often dropped if they can’t make it through performance reviews.&lt;/p&gt;

&lt;p&gt;If a coding bootcamp is something you’re seriously considering, it’s best to try many of the free online options available to prepare yourself for the steep learning curve. Codecademy and The Odin Project are two free resources that will teach you the fundamentals of full stack web development.&lt;/p&gt;

&lt;p&gt;Along with general information about the bootcamps, we’ve included a bad review. Simply reading website copy provided by the companies themselves don’t give you the full picture of what the program has to offer. Bad reviews are more nuanced. It teaches you about the type of person that may fail in a particular program. It also tells you what a bootcamp may not want you to know. In the end, no program is perfect and it’s essential that you know which warts are worth ignoring and which ones would give you cause to reconsider.&lt;/p&gt;

&lt;p&gt;Note: Most of the reviews and information pertaining the schools were sourced from SwitchUp.&lt;/p&gt;

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

&lt;p&gt;Locations: NYC, Houston, Online, Washington, D.C., London, Seattle, Atlanta, Denver, and Chicago&lt;/p&gt;

&lt;p&gt;Duration: 15 weeks&lt;/p&gt;

&lt;p&gt;Cost: $15,000&lt;/p&gt;

&lt;p&gt;Tech: JavaScript, Ruby on Rails, HTML, CSS, Java, Node.js, AngularJS, SQL&lt;/p&gt;

&lt;p&gt;Review:&lt;/p&gt;

&lt;p&gt;I would absolutely not recommend Flatiron School to anyone looking to do a bootcamp. If I could do it over again, I would attend a bootcamp but it would absolutely not be Flatiron.&lt;br&gt;
Pros:&lt;/p&gt;

&lt;p&gt;-React is a good thing to learn&lt;/p&gt;

&lt;p&gt;-In terms of the basics of actually getting a site up and running, that was taught&lt;/p&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;p&gt;-I experienced MAJOR sexism and sexual harassment at the Flatiron School. This happened multiple times, with multiple people, to different extents. As a woman, this is not a remotely friendly environment despite what leadership may say.&lt;/p&gt;

&lt;p&gt;-The instructors are (even if they tell you otherwise) not people with teaching and industry experience. In some cases, they have had some industry experience, but most are just graduates of Flatiron School. So the quality of the actual instruction isn’t very good, and the instructors also haven’t ever actually worked as a professional engineer.&lt;/p&gt;

&lt;p&gt;-Minimal focus on computer science/data structures/algorithms&lt;/p&gt;

&lt;p&gt;-Curriculum is honestly a little limited- if you pick things up quickly, you’ll run out of things to do and end up teaching yourself for $15k&lt;/p&gt;

&lt;p&gt;-Also, please read through the settlement with the NY Attorney General regarding job numbers. This place is not a magical path to a job as they may promise.&lt;/p&gt;

&lt;p&gt;Overall, if you are interested in a bootcamp, definitely attend one! Just be very skeptical of all promises made to you in inquiries, interviews, etc and I would definitely recommend going somewhere other than Flatiron.&lt;/p&gt;

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

&lt;p&gt;Locations: Berlin, Mexico City, Amsterdam, Sao Paulo, Paris, Miami, Madrid, Barcelona, Lisbon, Bogota, and Munich&lt;/p&gt;

&lt;p&gt;Duration: 9 weeks full time/ 24 weeks part time&lt;/p&gt;

&lt;p&gt;Cost: $12,000&lt;/p&gt;

&lt;p&gt;Tech: HTML5, CSS3, JavaScript, React, TypeScript, Express, MongoDB and Testing&lt;/p&gt;

&lt;p&gt;Review: Iron Hack has a great reputation. The only real negative experience was over a scholarship dispute.&lt;/p&gt;

&lt;h2&gt;
  
  
  App Academy
&lt;/h2&gt;

&lt;p&gt;Locations: San Francisco, New York, and remote&lt;/p&gt;

&lt;p&gt;Duration: 12 weeks&lt;/p&gt;

&lt;p&gt;Cost: Depends on plan. $0 (refund)- 25,000&lt;/p&gt;

&lt;p&gt;Tech:Ruby, Rails, JavaScript, React.js, Redux, CSS, HTML, SQL&lt;/p&gt;

&lt;p&gt;Review:&lt;/p&gt;

&lt;p&gt;With graduation near, I can’t wait for this program to be over, but I am confident that it has prepared me well to land a job as a software developer.&lt;br&gt;
The good:&lt;/p&gt;

&lt;p&gt;App Academy is a high quality coding bootcamp, and if you make it through, you will be well prepared for a career in software development. The curriculum is clear and thorough. The program is continuously updated to reflect changes in the industry. The students and staff are passionate about learning and coding. The staff are very helpful, and due to the tuition agreement, they are very invested in the students’ success.&lt;/p&gt;

&lt;p&gt;The bad:&lt;/p&gt;

&lt;p&gt;App Academy advertises that there is no coding background or experience required for their 12 week bootcamp. This technically is not wrong, but I would never recommend this program to someone with no coding experience. If I were to do this over, I would spend several months teaching myself to code and would take some free online classes before starting App Academy. The stress and lack of sleep I’m experiencing during this program are affecting my physical and mental health, and it would be much more bearable if I had known a lot more coming in.&lt;/p&gt;

&lt;h2&gt;
  
  
  General Assembly
&lt;/h2&gt;

&lt;p&gt;Locations: Dallas, Providence, San Diego, San Francisco, Seattle, NYC, Washington, D.C., Austin, Los Angeles, Atlanta, Denver, Chicago, London, Singapore, Hong Kong, Sydney, Melbourne, Online, Boston, and Santa Monica&lt;/p&gt;

&lt;p&gt;Duration: 10 weeks&lt;/p&gt;

&lt;p&gt;Cost: $14,500&lt;/p&gt;

&lt;p&gt;Tech: JavaScript, HTML, CSS, jQuery&lt;/p&gt;

&lt;p&gt;Review:&lt;/p&gt;

&lt;p&gt;I have to say that I’m disappointed with the program. I expected a more professional approach from an institution like GA, especially given the cost and the effort I put into it.&lt;br&gt;
My experience at GA doesn’t justify the cost of this program (around $200/session). There are courses online much better structured, with more practice and better documentation for a fraction of the price.&lt;/p&gt;

&lt;p&gt;To clarify what I understand as good an effective learning experience, let me lay out what I expected:&lt;/p&gt;

&lt;p&gt;Pre class work: provide documentation about the topic before the class, so students can be prepared. It’d improve the understanding of the material, reduce the time the instructor has to spend explaining it, and give us the opportunity to have questions ready.&lt;/p&gt;

&lt;p&gt;Post class work: for the whole course we are going to have only 3 exercises. If I know something about coding, it’s that the only way to learn it is practicing. We need more exercises, more getting our hands dirty, more feedback…&lt;/p&gt;

&lt;p&gt;Documentation: I expected to get good documentation to follow during the course, which also I could use as a reference in the future. A Jupyter workbook is not the right tool for presenting learning material. Every time I tried to find something, I had to navigate through different quite long workbooks. For each line of code I have questions, I need between 2 to 7 minutes to find the answer. That we are learning python doesn’t mean that the material should be in python.&lt;/p&gt;

&lt;p&gt;As a summary, I went from being very excited about the program to feel that I overpayed for something I could have done online.&lt;/p&gt;

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

&lt;p&gt;Location: remote&lt;/p&gt;

&lt;p&gt;Duration:&lt;/p&gt;

&lt;p&gt;Cost: $8,500&lt;/p&gt;

&lt;p&gt;Tech:Ruby on Rails, JavaScript, jQuery, HTML, CSS, AngularJS, React.js, Node.js&lt;/p&gt;

&lt;p&gt;Review:&lt;/p&gt;

&lt;p&gt;I have been at Bloc for a year and have waited to write a review but I am at my wits end. Since my first day, I had a mentor who was a former Bloc student. They gave me very little support and always cancelled our meetings. Looking back they really didnt offer me any “mentoring” and was not qualified in my opinion to be a mentor yet.&lt;br&gt;
Luckily now I have a great mentor but honestly he is the only positive part of my Bloc experience. The hours they say it takes to complete are not feasible. I work full time and it takes hours to finish projects, not to mention the revisions. Hey I totally get that things need revisions but its not realistic to say 1 project takes 4 hours! try more 10–15 hours realistically from start to finish.&lt;/p&gt;

&lt;p&gt;Now the grading….we are being timed to complete the program. Again, some of us have full time jobs and they are suppose to take 48 hours to grade. Well it actually takes 4–5 days…and you have to wait to continue to the next project depending on the material. I have also asked for someone to call me from the support team multiple times and yet nobody has…..luckily I have UX designers who are friends &amp;amp; they have taught me more than Bloc. Do not waste your money. I regret it in hindsight. I am sure there are better programs out there with more supportive staff.&lt;/p&gt;

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

&lt;p&gt;Locations: Washington, D.C., Philadelphia, Houston, Portland, Dallas, Los Angeles, Phoenix, San Diego, Online, Atlanta, Miami, Tampa, Chicago, Raleigh-Durham, Denver, Boston, San Francisco, Detroit, Salt Lake City, Seattle, Minneapolis, and Austin&lt;/p&gt;

&lt;p&gt;Duration: 16 weeks(full-time)-24 weeks(flex)&lt;/p&gt;

&lt;p&gt;Cost: $9,500(flexible) — $16,000(full-time)&lt;/p&gt;

&lt;p&gt;Tech: HTML, CSS, JavaScript, jQuery, Node.js, MongoDB, React.js&lt;/p&gt;

&lt;p&gt;Review:&lt;/p&gt;

&lt;p&gt;I started this program with broken promises. Before enrolling the school GUARANTEED A FULL TIME JOB OR A FULL REFUND. None of it has happened. The first month was great the easy stuff. The months moving forward I was assigned about 7 different mentors.&lt;br&gt;
Reasons being they did not know javascript or they would direct me to google. A lot of times the mentors would complain about the low rate of pay. The Q &amp;amp; A sessions offered are even worse, the mentors pick and choose who they want to work with. If they didn’t like you or if you did not meet a certain requirement they would again point you to google or say they don’t know the subject matter.&lt;/p&gt;

&lt;p&gt;About 75 % of the Q &amp;amp; A’s I registered for were cancelled, no reason was given. The curriculum is dated and old it is a lot of reading and more reading.&lt;/p&gt;

&lt;p&gt;The mentors are not experienced at all. They just come to collect a paycheck and update their skills on the expense of the students. The school does not monitor the mentor sessions or the Q &amp;amp; A sessions which are just a waste of time.&lt;/p&gt;

&lt;p&gt;The slack channel your questions will go unanswered or if they answer it they will shame you and point you to an article on how to ask questions. I was not a professional programmer I was a student looking to learn. This program is not designed for students to be successful. Not a single assignment was graded or was any feedback given. I was given a pacing guide on month 8 of the program.&lt;/p&gt;

&lt;p&gt;The statics show a 98% success rate which makes sense. If you go above the 6 months they will forcefully withdraw you to keep the data looking good.&lt;/p&gt;

&lt;p&gt;Save yourself the time and money go buy the same course on udemy for $10 bucks. Employers do not look at education they look what can you build. The stuff learned here I was not even able to get a UNPAID internship.&lt;/p&gt;

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

&lt;p&gt;Locations: Seattle, San Francisco, Los Angeles, Silicon Valley, San Jose, Chicago, Dallas, Washington, D.C., Berkeley, Tulsa, and Online&lt;/p&gt;

&lt;p&gt;Duration: 14 weeks&lt;/p&gt;

&lt;p&gt;Cost: $13, 495&lt;/p&gt;

&lt;p&gt;Tech: Front-End Development, HTML/CSS, Javascript, Twitter Bootstrap, jQuery, LESS, PHP, CodeIgniter, MySQL, Ajax, Angular.JS, MongoDB, Express, Node.JS, Socket.IO, Redis, Postgres, SQLite, Coffeescript, NGINX, Heroku, Ruby, Rails, Python, Java&lt;/p&gt;

&lt;p&gt;Review:&lt;/p&gt;

&lt;p&gt;Coding dojo met but did not exceed my expectations. I went into it with an already marketable skill set and considerable knowledge of software especially in Python . But to be fair I didn’t know what it took to get a job in Silicon Valley and coding dojo was one element in my journey of getting there over the last year.&lt;br&gt;
Their course material is pretty good, and the instructors all cared a lot &amp;amp; worked hard for the students. Many had deep computer science knowledge &amp;amp;/or real world work experience as well.&lt;/p&gt;

&lt;p&gt;However, I was rather put off at how blatantly disingenuous their claimed graduate job placement rate is. I took an extra month to graduate* &amp;amp; got a job in software development after 8 months, which puts me ahead of at least 70–80% of my classmates who graduated (and it’s a tough program, out of 35–40 ppl the 1st day about 12 graduated that I know of in my cohort). Other cohorts at that time had about the same stats. All this while if I turn adblock off, practically every page features a Coding Dojo ad claiming 95% of graduates are hired w/in 6 months.&lt;/p&gt;

&lt;p&gt;They charge you to keep using the learning platform after you graduate (unless you beg them for free access, but I never got around to it b/c I was too heated over that whole situation combined w/ the stress of job hunting &amp;amp; my own sour recollection of their phoney baloney job placement stats &amp;amp; an Eastern European girl I was briefly involved w/ before I finished studying there)&lt;/p&gt;

&lt;h2&gt;
  
  
  Hack Reactor
&lt;/h2&gt;

&lt;p&gt;Locations: Austin, Los Angeles, New York, San Francisco, remote&lt;/p&gt;

&lt;p&gt;Duration: 12 weeks&lt;/p&gt;

&lt;p&gt;Cost: $19, 780&lt;/p&gt;

&lt;p&gt;Tech: AngularJS, CoffeeScript, CSS, Data Structures, Express, Git, HTML, JavaScript, jQuery, MongoDB, MySQL, Node.js, SQL, React.js, Blockchain&lt;/p&gt;

&lt;p&gt;Review: Read this medium article for insight into Hack Reactor’s flaws.&lt;/p&gt;

&lt;p&gt;If you want to learn more about coding bootcamps, watch &lt;a href="https://www.stitcher.com/podcast/anchor-podcasts/devbits"&gt;our podcast&lt;/a&gt; episode where we talk about how coding bootcamps have impacted the job market for developers.&lt;/p&gt;

&lt;p&gt;Visit our website for more articles.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
    </item>
    <item>
      <title>Why Whiteboarding Needs A Makeover</title>
      <dc:creator>Codesmith Staffing</dc:creator>
      <pubDate>Sat, 14 Jul 2018 20:12:16 +0000</pubDate>
      <link>https://dev.to/codesmith_staff/why-whiteboarding-needs-a-makeover-mja</link>
      <guid>https://dev.to/codesmith_staff/why-whiteboarding-needs-a-makeover-mja</guid>
      <description>&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Flfnww7zugc8mz6dbndr1.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Flfnww7zugc8mz6dbndr1.jpg" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Visit &lt;a href="http://codesmithstaffing.com/blog/" rel="noopener noreferrer"&gt;Codesmith Staffing&lt;/a&gt; for more tech articles&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Everywhere you look, the pen and the paper is being replaced by the stylus and the touch screen. In the early 2000s, the first few smartboards rolled out into classrooms, abrogating the chalks and markers and erasers and grime-stained boards. These new boards promised an interactive approach to learning that catered to different types of learning. Now fast forward to the ipad and surface pro era. Touch interfaces have now found homes on monitors. &lt;/p&gt;

&lt;p&gt;So the big question is, why do tech companies still pull out the good ol’ dry erase board during technical interviews? Do the technical interviewers inwardly cackle with glee when they see their candidates’ eyes widen at all the battle scars on their boards? Most likely not. Is the whiteboarding phenomenon a time-worn tradition that needs to be kicked into the 21st century? &lt;/p&gt;

&lt;p&gt;Yes. &lt;/p&gt;

&lt;p&gt;The problem with the dreaded whiteboard is that it is completely antithetical to a programmer’s normal work environment.Gone are the hotkeys. Gone is that nice editor that makes code reading a  somewhat pleasing experience. In place of all the convenience a computer provides is a marker and your insecurities. Of course, with constant practise, whiteboarding may just become a mild annoyance rather than a massive migraine. But if tech companies continue to demand whiteboarding and recruits continue to despise it, there has to be a happy medium. &lt;/p&gt;

&lt;p&gt;That’s  where the smartboard comes in, whether it’s a touch monitor or the interactive whiteboards found in many high schools. There are many whiteboarding software out there. Microsoft recently just released one of their own. The technical interviewer simply needs to have the software up and running before the interview begins. Why does this bridge the divide? &lt;/p&gt;

&lt;p&gt;1) Inclusivity: The interactive whiteboard caters to different styles. Some people may be visual learners and may find it hard to read their own code. A lit, pure white background will make it easier for the candidate to read his or her own code. &lt;/p&gt;

&lt;p&gt;2) Flexibility: Would it hurt to have documentation available? A programmer who is willing to refactor his code by looking up some useful methods is someone you’d want to have on the team. In one go, you can check the knows how to read docs and actually refactors code boxes. &lt;/p&gt;

&lt;p&gt;3) Interactivity: There is no question that we’ve been spoiled by touch technology. When you’re left with a pen and a board with no fluid dimensions, you’d feel like you just  time traveled. Now you actually have to worry about make sure you can contain your code. With a smartboard, all the candidate needs to do is scroll to create more blank space. &lt;/p&gt;

&lt;p&gt;Smartboards won’t solve all of the pain points experienced by developers, but they at least alleviate the anxiety some candidates face when approaching “The Whiteboard.”&lt;/p&gt;

</description>
      <category>recruitment</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Explaining JavaScript’s Prototype Chain Like You're Five</title>
      <dc:creator>Codesmith Staffing</dc:creator>
      <pubDate>Wed, 18 Apr 2018 16:23:01 +0000</pubDate>
      <link>https://dev.to/codesmith_staff/explain-javascripts-prototype-chain-like-im-five-51p</link>
      <guid>https://dev.to/codesmith_staff/explain-javascripts-prototype-chain-like-im-five-51p</guid>
      <description>

&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5x4rpu4wh28ms82qqx1v.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5x4rpu4wh28ms82qqx1v.jpg" alt="chain"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published in codburst.io as Pass Your Front End Interview By Knowing JavaScript's Prototype Chain.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When you first started learning to program, you may have come across the term object-oriented programming. You looked up what it meant and you found out that it’s simply a buzz word for grouping data into “objects” with attributes.&lt;/p&gt;

&lt;p&gt;The keyword used to create these objects in many programming languages is the class. You define a class with a constructor and several public and private functions.If you want one class to inherit from another, you write simple inheritance syntax and (wala!) you have created a chain of inheritance.&lt;/p&gt;

&lt;p&gt;Of course, this all groovy if you’re anyone but a JavaScript developer. Until ES2015, the language did not implement a class. Instead, it used and still uses a prototype chain. The new ES6 “class” is just a sugary syntactic concoction that hides the inner workings of the prototype chain. Understanding how the prototype chain works is crucial if you want to develop performant code while using JavaScript’s OOP paradigm.&lt;/p&gt;

&lt;p&gt;For those familiar (or not so familiar) with computer science, the prototype chain is a linked list. It’s a gross oversimplification, but keeping it simple is the key to gaining understanding. Here’s Mozilla‘s definition of a prototype chain:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;When it comes to inheritance, JavaScript only has one construct: objects. Each object has a private property which holds a link to another object called its prototype. That prototype object has a prototype of its own, and so on until an object is reached with null as its prototype. By definition, null has no prototype, and acts as the final link in this prototype chain.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sounds a whole lot like a list huh? Each element in this particular list contains an object literal called a prototype.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffbol4z64ti4rom45ij2e.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ffbol4z64ti4rom45ij2e.png" alt="inherit"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The image above is slightly misleading because the last element in a prototype chain is always Object, from which all instances like functions and arrays derive from.How Does thinking of the Prototype Chain as a Linked List help ?&lt;/p&gt;

&lt;p&gt;Well, there is one major quirk that we should know about lists. When we want to traverse a list, we have to start from the head of the list. So, in terms of Big O notation, it would take O(n) time to retrieve an element in the prototype chain. You can start to imagine the performance problems you might face if you have prototype chains that are too long.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do We Initialize Our Chain?
&lt;/h2&gt;

&lt;p&gt;The first thing we need to do is create a constructor. Coding by pre-ES5 standards, there is no ‘‘classy’’ way to do this. The only thing we do to differentiate a constructor function from other functions is to capitalizing the first letter. Then, we use the new keyword to create an object.&lt;br&gt;
Note: the pre-ES5 example is being used for now to shun the class syntax. We’ll jump back on the ES5 wagon later.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Bat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
 &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;bob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Bat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bob&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every constructor we initialize gets a free prototype object as one of its properties. We can name a key and set a value to it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Bat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fly&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Im flying. Weeee&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;Bat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;detect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;I found a mouse!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Already, you can see the advantage of prototypical inheritance. We can add methods to our class without modifying the class definition, letting the chain handle property inheritance. This is what the chain looks like in one instance of our Bat object:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Bob{name: bob}=&amp;gt;Prototype{fly: [Function], detect: [Function]} =&amp;gt; Object {} =&amp;gt; null&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, if we write bob.name, we get ‘bob’. And if we write &lt;code&gt;bob.fly()&lt;/code&gt;, we get &lt;code&gt;‘Im flying. Weeee’&lt;/code&gt;. Hmmm. How do we have access to &lt;code&gt;fly()&lt;/code&gt; without calling &lt;code&gt;bob.prototype.fly()&lt;/code&gt;?&lt;/p&gt;

&lt;p&gt;Well, it’s not magic. JavaScript’s engine first looks for the property in the object itself. If it’s not there, it traverses over to the first prototype, then the next…and the next, till it either finds what it’s looking for or hits null.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting it All Together
&lt;/h2&gt;

&lt;p&gt;We can take advantage of prototype chains to perform class inheritance. This OOP method is also called subclassing.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Mammal&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bloodTemp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;warm&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Carnivore&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Lion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
  &lt;span class="nx"&gt;Mammal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;//super. Inherit constructor&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We’ll create one super class and two other subclasses. Carnivore should inherit from Mammal and and Lion should inherit from both Carnivore and Mammal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Mammal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;growHair&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
   &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;my hair is growing&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;Carnivore&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Mammal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;Carnivore&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;eatMeat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Mmm.Meat&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;Lion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Carnivore&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;Lion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pride&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;im king of the jungle&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We’re back to using ES5. &lt;code&gt;Object.create()&lt;/code&gt; turns a prototype into a stand alone object literal that we can then assign as the prototype of another object. This means we ignore the constructor of the super class when inheriting.&lt;br&gt;
Note: That’s why we invoked &lt;code&gt;Mammal.call(this)&lt;/code&gt; within Lion’s constructor so that we could borrow Mammal’s constructor.&lt;/p&gt;

&lt;p&gt;Knowing how prototype chain now work, you can see how easy the jump from chaining methods to chaining objects can be.&lt;br&gt;
Here’s the expected output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;charlie&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Lion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="nx"&gt;charlie&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;charlie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;growHair&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;// my hair is growing&lt;/span&gt;
&lt;span class="nx"&gt;charlie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;eatMeat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;// Mmm.Meat&lt;/span&gt;
&lt;span class="nx"&gt;charlie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pride&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;    &lt;span class="c1"&gt;//im king of the jungle&lt;/span&gt;
&lt;span class="nx"&gt;charlie&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bloodTemp&lt;/span&gt;  &lt;span class="c1"&gt;// warm&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: To achieve the same result, you can also implement mixins with &lt;code&gt;Object.assign()&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//classical inheritance&lt;/span&gt;
&lt;span class="nx"&gt;Lion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Mammal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;//This is a mixin&lt;/span&gt;
&lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;assign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Lion&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Carnivore&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;prototype&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Creating methods and inheriting using the prototype chain may seem tedious as compared to the sugary class implementation. Still, what you come to appreciate is the dynamic and modular nature of JavaScript’s language. One important thing to note is that you don’t want to get carried away with prototypical inheritance. Recall this: the charlie.growHair() function had to travel a long way up the chain before it could be executed. Short chains equal better performance.&lt;/p&gt;




&lt;p&gt;Written by,&lt;br&gt;
Raji Ayinla |&lt;a href="https://dev.to/realrayinla"&gt;https://dev.to/realrayinla&lt;/a&gt; |&lt;a href="mailto:rajiayinla858@gmail.com"&gt;rajiayinla858@gmail.com&lt;/a&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frus3vez9s2udmpvfnjgm.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frus3vez9s2udmpvfnjgm.jpg" alt="codesmith"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>computerscience</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
