A podcast by coders for coders about all aspects of life as a developer.
Hosted on Acast. See acast.com/privacy for more information.
php/* */ ?>
A podcast by coders for coders about all aspects of life as a developer.
Hosted on Acast. See acast.com/privacy for more information.
Copyright: © Complete Developer Podcast. All Rights Reserved.
<p>Finishing the two part episode on skills web developers need to know the guys tackle the skills needed to land a job along with advanced skills to set yourself apart. The episode closes with a list of honorable mentions that do not directly apply to web development but are interpersonal skills useful to a career in development.</p>
<blockquote>You've got the basics down and this is what you need before you start submitting resumes.</blockquote>
<p>The intermediate skills listed in the episode is the base needed to begin a career as a web developer. The concepts build upon the previous listed basic and fundamental skills. These include methodologies of the web, programming paradigms, maintaining a project, and testing and debugging.</p>
<p>Set yourself apart and above the crowd by learning and understanding the advanced skills. Knowledge of concepts such as data structure, algorithm development, modelling, and design shows more than a passing interest in the field and gives the basics to move up as a developer.</p>
<p>Many of these skills are deep enough topics to warrent their own episodes. Will and BJ provide an overview for further discussion.</p>
Hosted on Acast. See acast.com/privacy for more information.
<p style="text-align: justify;">The question was asked on Quora: What are the five essential skills every web developer should have? There were 91 different answers to this question, though most could be broken down into one of three categories: technical, personal, and interpersonal. Within each answer some similarities existed including basics of the web (HTML, CSS, JavaScript, HTTP(S), and server basics), security, testing, and a willingness to learn. A few of the unique responses included etiquette on sites such as StackOverflow and Github, how to handle criticism, and a pulse on the industry. In this episode BJ and Will list their necessary skills to be a web developer. Attempting to remain evergreen and language agnostic they cover the basics but leave deeper understanding to the listener or for later episodes.</p>
<p>The list is divided into fundamental knowledge or the absolute basics to get started, basic knowledge (what's needed for simple freelance or open source work), intermediate knowledge (the skills to get the job), and advanced knowledge (how to stand out).</p>
<p>Due to the length of the recording the episode was divided into two parts. This first part looks at the fundamental and basic knowledge needed to be a web developer. Next week will feature the intermediate and advanced knowledge to be a web developer as well as a brief list of the honorable mentions that did not make the list but are good to know to advance as a web developer.</p>
Hosted on Acast. See acast.com/privacy for more information.
<p>The term technical debt can be misleading and confusing. It is generally referred to as a metaphor referencing the consequences of system design or software architecture in a codebase. Technical debt can be difficult to identify directly so developers need to use clues that can be broken down into social cues, code cues, and testing/deployment cues. When developers don't like dealing with a particular area of code or frequently complain about working in a certain part of the codebase that is a social cue that there may be technical debt in that area. Overly tight coupling, objects with too much control, and incoherence between components are all cues in the code that there is technical debt that needs to be dealt with. Finally in testing and deployment if there is a lot of friction setting up the environment or testing fails irregularly due to brittleness there may be technical debt in the codebase.</p>
Hosted on Acast. See acast.com/privacy for more information.
<blockquote style="text-align: justify; font-weight: 400; font-style: oblique;">"I want to reconfigure my code to best survive the environment it lives in, it's an evolutionary process." ~ Will</blockquote>
<p>Refactoring is the process of making the internals of an application less painful to code without affecting the functionality of the app. Refactoring code improves the ability of developers to troubleshoot problems and increases the speed of developing new functionality. It involves decoupling internal components to keep dependency changes from causing major rework or reorganization of code in preparation for future operations. Organizational inertia and interpersonal disagreements about how to proceed may inhibit the ability to refactor. When refactoring start with small changes and a small locus of control, reference the architecture, and make short iterations before integration.</p>
Hosted on Acast. See acast.com/privacy for more information.
<p>Resilience is the ability or capacity to quickly recover from difficulties. Systems that are resilient have less risk, a lower cost of ownership, and the ability to build upon the system. The CAP theorem of Consistency, Availability, and Partition applies to resilience within the domain of distributed systems but is instructive in regards to any system. The seven principles of resilience used in this episode were gleaned from the Stockholm Resilience Centre's guidelines for general-purpose resilience. The first three involve systems design while the final four focus around team and organizational structure.</p>
Hosted on Acast. See acast.com/privacy for more information.
<blockquote>“Flags allow us to restrict features to certain environments, while still using the same code base on all servers.” ~ Ross Harmes</blockquote>
<p class="abstract">Feature flags offer an alternative to maintaining multiple various branches of source code. Continuous deployment requires such feature branches to be integrated with the master branch as early as possible. Feature flags are toggles that allow for early integration with execution paths turned off by a toggle that can be turned on for specific users/testers or when the feature is ready for deployment without having to roll out new source code. There are two basic types of feature flags: release toggles and business toggles. Release toggles are used for rolling out new features in continuous deployment. Business toggles allow for restricted user access such as through premium accounts. The simplest feature flags are boolean statements however they can be more. State can be set statically or dynamically. Rule based toggles can be used with XML, YAML, and JSON. Beyond common usage they are also available for trial of new features to allow early access to beta testers, allow internal review of the feature, or run A/B tests. When rolling out new features toggles can be used to verify scalability of the feature or app. Toggles should show a minimal presence in code and be retired once pending features are added. Dangers of using feature flags include accidental exposure of the feature, corrupting data, and technical debt created by the toggles.</p>
Hosted on Acast. See acast.com/privacy for more information.
<p>This episode is highly influenced by Paul Graham's essay on maker's vs manager's schedules. He points out they are inherently conflicting in priorities. The biggest issues come from developers not being able to handle interruptions and managers not being able to wait for a convenient time. The guys start the episode looking at the differences in schedules and where time is allocated throughout the workday. The latter half of the episode is dedicated to ways that managers and developers can work together on creating functional schedules.</p>
Hosted on Acast. See acast.com/privacy for more information.
<p>A few weeks ago when recording the mood was hostile. Both Will and BJ were on edge but could not define the problem. Finally after over an hour of recording BJ says, "I'm getting frustrated and angry" to which Will responded, "Me too, let's figure out why." At that point they stopped recording and happened next is the basis for this episode.</p>
<p>After telling the story of what happened that night BJ and Will get into a Conflict 101 lesson followed by a list of healthy and unhealthy responses to conflict. They then discuss the skills needed to effectively resolve conflict. Next is 10 rules for fair fighting with discussions for each rule. Finally they spend the remainder of the show explaining some tips for resolving conflict.</p>
<div class="editornotes">
<h3>Editor's Notes:</h3>
<p>Due to snow in Tennessee this week Will and BJ recorded the intro via <a href="http://www.webex.com">Cisco's Webex</a> using their headsets instead of the regular microphones. Please bear with us as there is some echo from the connection.</p>
</div>
Hosted on Acast. See acast.com/privacy for more information.
<div class="shownotes post">
<p>Whether a single coder like BJ or one with a spouse and a child like Will this week's discussion focuses on the myth of the work-life balance. Work and life are intermingled and to imply a balance is to imply that one outweighs the other. A better description would be work-life separation and maintaining boundaries. This is accomplished by focusing on the quality of the time spent working and with family instead of the quantity. Throughout the episode Will and BJ share examples from their personal lives and lessons they have learned. Like a family they start with the relationship between significant others then move into the complexity that having children adds to that relationship. The episode closes out discussing the extremes of survival mode and how to survive it.</p>
<div class="editornotes">
<h3>Editor's Notes:</h3>
<p>A special thanks <a href="https://soundcloud.com/zaphoid1">Jason Belcher</a> for mastering the audio this week. We are gradually improving our process and he not only provided the new IoTease theme but has been a great help along the way.</p>
</div>
</div>
Hosted on Acast. See acast.com/privacy for more information.
<p style="text-align: justify;">Faster coding does not equate to better coding. This week Will and BJ put together five tips for faster and better coding to improve performance on the job and in personal projects. From continuing to drill basic typing skills to learning your IDE's shortcut keys the guys discuss improvements that can be useful no matter your level or skill.</p>
<ol>
<li style="text-align: justify;">The absolute basics (typing skills, equipment, and code editors)</li>
<li style="text-align: justify;">Reduce the amount of code you write</li>
<li style="text-align: justify;">Reduce the number of errors you make</li>
<li style="text-align: justify;">Ways to improve your speed while coding</li>
<li style="text-align: justify;">Continue to practice daily</li>
</ol>
<h3 style="text-align: center;">Links</h3>
<div class="grid col-300"><a href="http://www.vivalnk.com/feverscout" target="_blank">Fever Scout</a>
<br />
<a href="http://typing.io" target="_blank">Typing Practice</a>
</div>
<div class="grid col-300">
<a href="http://www.amazon.com/Adesso-Tru-Form-Illuminated-Ergonomic-AKB-150EB/dp/B00N99LPC6/ref=sr_1_1?s=pc&ie=UTF8&qid=1453691625&sr=1-1&keywords=backlit+ergonomic+keyboard" target="_blank">Will's Ultimate Affordable Keyboard</a>
<br />
<a href="http://www.datamancer.net/keyboards/ergo1/ergo1.htm" target="_blank">BJ's Dream Keyboard</a>
</div>
<div class="grid col-300 fit">
<a href="http://everyitinfo.blogspot.com/2013/11/windows-shortcut-keys-and-key-imagefrom.html" target="_blank">Windows Shortcut Keys</a>
<br />
<a href="http://ithouse24.com/23-basic-pc-shortcut-keys-for-all-operating-systems/" target="_blank">Basic Shortcut Keys</a></div>
<div class="editorsnote">
<h4>Editor's Note:</h4>
<p style="text-align: justify;">Will had the beginings of an unpleasant sinus infection during the recording of this episode. Most of the sniffles and coughs have been edited out though please bear with us this week. He has since recovered and is feeling much better.</p>
</div>
Hosted on Acast. See acast.com/privacy for more information.