<?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: Peter Berg</title>
    <description>The latest articles on DEV Community by Peter Berg (@peteratticusberg).</description>
    <link>https://dev.to/peteratticusberg</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%2F185546%2Fbb0bddf0-0631-4c4f-b3a7-b6a573f1e2ed.jpeg</url>
      <title>DEV Community: Peter Berg</title>
      <link>https://dev.to/peteratticusberg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/peteratticusberg"/>
    <language>en</language>
    <item>
      <title>How long did it take you to get your first job?</title>
      <dc:creator>Peter Berg</dc:creator>
      <pubDate>Tue, 16 Jul 2019 14:54:39 +0000</pubDate>
      <link>https://dev.to/peteratticusberg/how-long-did-it-take-you-to-get-your-first-job-51j4</link>
      <guid>https://dev.to/peteratticusberg/how-long-did-it-take-you-to-get-your-first-job-51j4</guid>
      <description>&lt;p&gt;Would be great to hear about whether you went to bootcamp or not, where you are geographically, and what language got your first job working in&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>bootcamp</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Bootcamp Outcomes by the Numbers</title>
      <dc:creator>Peter Berg</dc:creator>
      <pubDate>Tue, 16 Jul 2019 13:44:02 +0000</pubDate>
      <link>https://dev.to/peteratticusberg/bootcamp-outcomes-by-the-numbers-3j01</link>
      <guid>https://dev.to/peteratticusberg/bootcamp-outcomes-by-the-numbers-3j01</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%2F5688dm7ytl3fm0e67x9p.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%2F5688dm7ytl3fm0e67x9p.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Actual google sheet can be found &lt;a href="https://docs.google.com/spreadsheets/d/1w55YZHZMamqdFiF3YLJygJlCFvaGaG-Y8xR415ueCPw/edit#gid=0" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So what is this? &lt;/p&gt;

&lt;p&gt;There is a group of bootcamps that, biyearly, report their results in a mutually agreed upon format. These are the results reported by that set of bootcamps from the first half of 2018. &lt;/p&gt;

&lt;p&gt;That group is the &lt;a href="https://cirr.org" rel="noopener noreferrer"&gt;CIRR&lt;/a&gt; (Council on Integrity on Results Reporting) and that data can be found &lt;a href="https://cirr.org/data" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;79.3% of graduates get jobs&lt;/li&gt;
&lt;li&gt;76.9% of attendees graduate&lt;/li&gt;
&lt;li&gt;60.7% of attendees get jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Keep in mind
&lt;/h2&gt;

&lt;h4&gt;
  
  
  1) Some bootcamps "fire" students
&lt;/h4&gt;

&lt;p&gt;Some bootcamps part ways with underperforming students prior to graduation to ensure their graduate employment rates are reflective of results for people who have mastered their curriculum. &lt;/p&gt;

&lt;h4&gt;
  
  
  2) Employment is broadly defined
&lt;/h4&gt;

&lt;p&gt;Employment includes full time work, part time work, contract work, and internships as its used here. &lt;/p&gt;

&lt;h4&gt;
  
  
  3) Online programs have lower graduation rates
&lt;/h4&gt;

&lt;p&gt;If you see a really low graduation rate, it's likely for an online program. &lt;/p&gt;

&lt;h4&gt;
  
  
  4) These averages are depressed by online programs
&lt;/h4&gt;

&lt;p&gt;The presence of online programs in this data drags down the quoted averages.&lt;/p&gt;

&lt;h4&gt;
  
  
  5) Employment numbers are reported 6 months post graduation
&lt;/h4&gt;

&lt;p&gt;A program's employment rate reflects the number of graduates that are employed 6 months after having completed the program. This is because it often takes bootcamp graduates 3-6 months to find a job. &lt;/p&gt;

&lt;h4&gt;
  
  
  6) These results are likely better than average
&lt;/h4&gt;

&lt;p&gt;In general, companies tend to share good news when they have it and keep quiet about bad news. By virtue of the fact that they're getting reported, it's likely that these results are better than average.&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>bootcamp</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Web development vs mobile development vs software development explained for beginners</title>
      <dc:creator>Peter Berg</dc:creator>
      <pubDate>Wed, 10 Jul 2019 14:17:14 +0000</pubDate>
      <link>https://dev.to/peteratticusberg/web-development-vs-mobile-development-vs-software-development-explained-for-beginners-23ed</link>
      <guid>https://dev.to/peteratticusberg/web-development-vs-mobile-development-vs-software-development-explained-for-beginners-23ed</guid>
      <description>&lt;h3&gt;
  
  
  Software Development
&lt;/h3&gt;

&lt;p&gt;Software development is the broadest of these terms and it encompasses anything that involves writing code. Software is simply any set of instructions that runs on hardware. We can think of hardware as any device that is used for any kind of computing. &lt;/p&gt;

&lt;p&gt;Examples of software: Microsoft word, a mobile game, a browser, an operating system, the 'cd' or 'dir' command you execute from a shell, the kernel of a unix machine, a script you wrote that prints "hello world" to the terminal&lt;/p&gt;

&lt;p&gt;Examples of hardware: A desktop computer, a phone, a raspberry pi, an electronic traffic sign on the highway, a calculator, a router, a modem, an electronic coffee maker, a dishwasher, a smart tv&lt;/p&gt;

&lt;p&gt;This means software development could entail anything from writing code that runs on a coffee maker to building a website to working on an operating system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Web Development
&lt;/h3&gt;

&lt;p&gt;Web development is narrow subset of software development. It involves building software that is served by or that runs on a server accessible via the internet. A server is simply a computer that is listening for requests from other computers (viz. a computer that serves requests). &lt;/p&gt;

&lt;p&gt;Examples of software served by a server: html, css, javascript, a portfolio site, a react app, a game that runs in your browser, a text editor that runs in your browser, the frontend of facebook which runs in your browser, any website.&lt;/p&gt;

&lt;p&gt;Examples of software that runs on servers: ruby, python, java, node, a ruby on rails application, an HTTP api, facebook, dropbox, nginx&lt;/p&gt;

&lt;p&gt;Frontend development involves writing software that is served by a server (e.g. in html, css, javascript). &lt;/p&gt;

&lt;p&gt;Backend development involves writing software that runs on a server. This can be done in any language but is most commonly done in languages like node, java, python, php, ruby, and C#. &lt;/p&gt;

&lt;p&gt;Because doing backend development from scratch would involve solving a bunch of problems that have already been solved, almost all backend development is done with the help of a framework or library. E.g. Ruby on Rails (ruby), ASP.net (c#), Django (python), flask (python), Laravel (php), Spring (java), express (node), etc. &lt;/p&gt;

&lt;h3&gt;
  
  
  Mobile Development
&lt;/h3&gt;

&lt;p&gt;Mobile development involves writing software for phones (typically Android or iOS devices). Most of the mobile apps we use communicate with web servers, though some simple apps do not. &lt;/p&gt;

&lt;p&gt;Mobile apps that communicate with servers: twitter, facebook, the New York Times app, spotify, candy crush (for payments), google maps, Venmo&lt;/p&gt;

&lt;p&gt;Mobile apps that don’t communicate with a server: The default ’camera’ app on iOS, the default timer app, a calculator app, a dictionary app, any app that works identically whether airplane mode is on or off, a simple mobile game that has no social component, in app purchases, or advertisements. &lt;/p&gt;

&lt;p&gt;Because most mobile apps communicate with servers, building a mobile app often involves doing backend development (web development) and mobile development together. On a team, the backend development and mobile development for the same app can be handled by separate people or groups. &lt;/p&gt;

&lt;p&gt;Mobile development is typically done in java or kotlin for Android and objective-c or swift for iOS. &lt;/p&gt;

&lt;p&gt;There are also frameworks that can be used to develop a single mobile app that runs on both android and iOS like react native (which uses javascript) and flutter (which uses dart).&lt;/p&gt;




&lt;p&gt;Still confused? Feel free to ask questions in the comments below &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Job Boards</title>
      <dc:creator>Peter Berg</dc:creator>
      <pubDate>Tue, 09 Jul 2019 20:31:08 +0000</pubDate>
      <link>https://dev.to/peteratticusberg/job-boards-29d5</link>
      <guid>https://dev.to/peteratticusberg/job-boards-29d5</guid>
      <description>&lt;p&gt;Wondering where you can find jobs to apply to? Wonder no more.&lt;/p&gt;

&lt;p&gt;Note: You can use these sites to find jobs but you should apply to those jobs on a company's website whenever possible for best results. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://angel.co/"&gt;angellist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/jobs/get-started"&gt;stackoverflow careers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.ycombinator.com/jobs"&gt;ycombinator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://whoishiring.io/search/40.7128/-74.0060/11/?location=New%20York&amp;amp;search=engineering"&gt;whoishiring&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/forhire"&gt;weworkremotely&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/listings/jobs"&gt;dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.builtinnyc.com/jobs"&gt;builtinnyc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.glassdoor.com/Job/long-island-city-software-engineer-jobs-SRCH_IL.0,16_IC1132310_KO17,34.htm"&gt;glassdoor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.google.com/search?q=software+engineer&amp;amp;ibp=htl;jobs#fpstate=tldetail&amp;amp;htidocid=NuBErkxJNlq_hi2vAAAAAA%3D%3D&amp;amp;htivrt=jobs"&gt;google jobs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://reddit.com/forhire"&gt;reddit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://monday.vc/"&gt;monday.vc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.careerbuilder.com/jobs-software-developer-in-new-york?location="&gt;careerbuilder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.keyvalues.com/"&gt;keyvalues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/jobs"&gt;linkedin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dice.com/"&gt;dice&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.indeed.com/"&gt;indeed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.themuse.com/"&gt;themuse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.monster.com/"&gt;monster&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://newyork.craigslist.org/d/software-qa-dba-etc/search/sof"&gt;craigslist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ziprecruiter.com/"&gt;ziprecruiter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cybercoders.com"&gt;cybercoders&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're having a hard time getting first round interviews, also see &lt;a href="https://dev.to/peteratticusberg/getting-first-round-interviews-3em6"&gt;Getting More First Round Interviews&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>webdev</category>
    </item>
    <item>
      <title>You can write working code. What comes next?</title>
      <dc:creator>Peter Berg</dc:creator>
      <pubDate>Tue, 09 Jul 2019 13:49:28 +0000</pubDate>
      <link>https://dev.to/peteratticusberg/you-can-write-working-code-what-comes-next-21j1</link>
      <guid>https://dev.to/peteratticusberg/you-can-write-working-code-what-comes-next-21j1</guid>
      <description>&lt;p&gt;Design decisions. Or at least, they’re one of the things that comes next. &lt;/p&gt;

&lt;p&gt;Code either works or it doesn't. With design decisions, things aren't as black and white. Alice decides to use redux to store all the state in her react app. John decides that he's going to use ECC instead of RSA for encryption. Sarah creates one users table to store 3 different types of users. &lt;/p&gt;

&lt;p&gt;Are these good decisions? &lt;/p&gt;

&lt;p&gt;We can’t know. &lt;/p&gt;

&lt;p&gt;Code is always a means to an end. It’s never an end in itself. When we make (design) decisions about how to structure it, they need to be evaluated in view of the code’s purpose. We can’t know whether Alice, John, and Sarah made good choices because we don’t know what they were building and why.&lt;/p&gt;




&lt;p&gt;For example, let’s say Alice uses redux for the first time for a side project. It increases the complexity her app and makes it harder to understand and work with than it would have been had she left redux out. &lt;/p&gt;

&lt;p&gt;Was using redux a good choice? We can say (in this case) that using redux increased the project’s completion time and maintenance cost. We can also say it helped Alice learn redux. &lt;/p&gt;

&lt;p&gt;Let’s say Alice’s goal was to learn redux. Maintenance isn’t an issue because she doesn’t plan to maintain the project and  completion time isn’t an issue because she has a lot of unstructured free time. In this case, it’s fair to say using redux was a good choice in view of this goal with minimal downside. &lt;/p&gt;

&lt;p&gt;In another scenario, let’s say Alice’s goal was to deliver an easily maintainable, working application to a client as quickly as possible. Here, it can be said that using redux was a poor choice in view of this goal because it increased completion time and maintenance cost. &lt;/p&gt;

&lt;p&gt;At companies, things get more complicated. There are multiple, competing goals. The CEO wants to launch as quickly as possible. The CTO wants maintainable code and minimal tech debt. The product team wants a large feature set. Design wants pixel perfection and cross-browser compatibility. &lt;/p&gt;

&lt;p&gt;Time and resources are limited, so priorities have to get made by the business. These priorities then become the basis for the design decisions that get made in the code. (NB: In an ideal world these decisions are settled by the time work gets assigned to an engineer, but in practice they are often not)&lt;/p&gt;




&lt;p&gt;To be an effective software developer, you need to make sure the design decisions you’re making align with priorities that exist beyond the context of the code. &lt;/p&gt;

&lt;p&gt;If you’re new to development and this seems daunting, don’t sweat it — this is a skill all developers are honing all the time. Simply being aware of this as an area for growth will you enable you to cultivate this skill as you gain more and more experience as a developer. &lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Getting more first round interviews</title>
      <dc:creator>Peter Berg</dc:creator>
      <pubDate>Mon, 24 Jun 2019 17:39:16 +0000</pubDate>
      <link>https://dev.to/peteratticusberg/getting-first-round-interviews-3em6</link>
      <guid>https://dev.to/peteratticusberg/getting-first-round-interviews-3em6</guid>
      <description>&lt;p&gt;If you’re looking for your first professional role as a developer the number of first round interviews you get will be determined by your experience, how you talk about that experience in your resume, and the number of jobs you apply to.&lt;/p&gt;

&lt;p&gt;Fortunately you can exercise some control over all these things.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your Experience
&lt;/h3&gt;

&lt;p&gt;Companies prefer candidates with prior professional experience. This is a problem for entry level engineers seeking their first professional role.&lt;/p&gt;

&lt;p&gt;If you have the time and the financial wherewithal, you can consider seeking out internships, offering to work pro bono for either technology companies or small businesses, or building something on your own.&lt;/p&gt;

&lt;p&gt;If you opt for the latter route, try to build something for other people to use. Whether you’re successful in this or not you can pitch the months invested in the project as an attempt to start a business on your resume. This will make you significantly more employable if you’re applying to startups.&lt;/p&gt;

&lt;p&gt;Note that you also don’t have to choose between applying for roles and building on your experience. Depending on your situation, it may be possible do both at the same time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your Resume
&lt;/h3&gt;

&lt;p&gt;If you’re applying to jobs that require 1 or more years experience, you can increase the number of first round interviews you get by creating a version of your resume that is structured to resemble the resume of a professional software engineer.&lt;/p&gt;

&lt;p&gt;Emphasize any and all experience you have writing software that is intended for use by real people. Paid or unpaid work you did for a client, a passion project you built for yourself or others, or an internship all count. List this experience as a job/position you held, not as a project.&lt;/p&gt;

&lt;p&gt;When listing positions, try to make sure there is no overlap. When companies see that you held 3 positions at once, it makes it seem like you were un/underemployed. For example, if you were freelancing as a marketer at the same time you were freelancing as developer, consider just listing the developer experience for that period of time.&lt;/p&gt;

&lt;p&gt;Consider removing things from your resume that signal a lack of real world experience. These things include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A projects section on your resume. Professional developers don’t have a projects section on their resume.&lt;/li&gt;
&lt;li&gt;A recent bootcamp degree. If you graduated from a bootcamp 3 months ago, that’s a clear signal to companies that don’t have that 2–3 years professional experience listed as a pre-req on the job description.&lt;/li&gt;
&lt;li&gt;A profile website that showcases projects you’ve worked on. Again, this is uncommon among a professional developers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try to avoid a summary that reads something like “Young developer with a lot of potential seeking a great team to learn and grow with”, opting instead for something more along the lines of “Engineer looking for an early stage, product-focused technology organization”.&lt;/p&gt;

&lt;p&gt;Don’t put things on your resume that aren’t defensible but don’t be afraid to emphasize and de-emphasize experience to better align it with the role to which you’re applying. Remember: you’re in control of your own narrative — talk about what you want to talk about.&lt;/p&gt;

&lt;h3&gt;
  
  
  Job Application Volume
&lt;/h3&gt;

&lt;p&gt;The more jobs you apply to, the more first round interviews you will get.&lt;/p&gt;

&lt;p&gt;Don’t be afraid to apply to jobs that require 1–5 years experience. If a company comes across your resume for one of these roles and thinks you’re not a fit they won’t be angry at you and they won’t remember you. They’ll just skip over your resume and move on.&lt;/p&gt;

&lt;p&gt;A few things that help when applying for jobs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Level set. If you are looking for your first role as a professional software engineer, it’s not uncommon for it to take 30–50 applications to get a single first round interview. And chances are you will have to apply to 100s of jobs to get an offer.&lt;/li&gt;
&lt;li&gt;Keep your foot on the gas. Don’t slow down interview activity just because you’re far along with a single company. Try to make a list of at least 500 jobs you can apply to and apply to at least a dozen or so jobs every day. If you’re having trouble finding jobs, check out &lt;a href="https://dev.to/peteratticusberg/job-boards-29d5"&gt;these job boards&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Keep track of all the jobs you have applied to or plan to apply to in a single place. A spreadsheet can work well for this (e.g. something like &lt;a href="https://docs.google.com/spreadsheets/d/1rkooWYNAeyVy-ZkglvAYdo1B6GPlIkGgQ8QYv-yEgmA/edit#gid=0"&gt;this&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Always apply directly on a company’s website whenever possible. Companies often overlook or are slow to respond to applications that come through third party platforms like Angel List, LinkedIn, and so on.&lt;/li&gt;
&lt;li&gt;If a job application requires a cover letter or other free form response, tailor your response to the company and keep it to a few sentences.&lt;/li&gt;
&lt;li&gt;Stay busy. If you have a lot of unstructured free time on your hands, consider building an app or finding some pro bono engineering work to do as you’re applying for jobs.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Getting your first job as a developer is hard. It’s a psychological gauntlet that invariably involves dealing with tons of rejection.&lt;/p&gt;

&lt;p&gt;Know that job offers are hard to get because companies generally avoid hiring entry level developers. Of the 904 startups on angel list hiring software engineers, only 13 are hiring for roles with the word “junior” in the title.&lt;/p&gt;

&lt;p&gt;If you are an entry level developer and having a hard time getting a job, it is not because you are incapable of becoming a professional software developer. It’s because you're competing with people that have more experience than you for most of the roles you're applying to. &lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Books about computing</title>
      <dc:creator>Peter Berg</dc:creator>
      <pubDate>Sat, 22 Jun 2019 00:01:00 +0000</pubDate>
      <link>https://dev.to/peteratticusberg/books-about-computing-3n9b</link>
      <guid>https://dev.to/peteratticusberg/books-about-computing-3n9b</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Code-Language-Computer-Developer-Practices-ebook/dp/B00JDMPOK2/ref=sr_1_2?keywords=code&amp;amp;qid=1561161802&amp;amp;s=books&amp;amp;sr=1-2"&gt;Code&lt;/a&gt; explains how telegraphs evolved into computers&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/donnemartin/system-design-primer"&gt;The System Design Primer&lt;/a&gt; explains design patterns for composing a single application out of a network of machines operating in different capacities&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Design-UNIX-Operating-System/dp/0132017997/ref=sr_1_1?keywords=the+design+of+the+linux+operating+system&amp;amp;qid=1561161824&amp;amp;s=books&amp;amp;sr=1-1"&gt;The Design of the Unix Operating System&lt;/a&gt; explains how Unix provides software an interface to hardware&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Introduction-Networking-How-Internet-Works-ebook/dp/B00YD7M92S/ref=sr_1_3?crid=W6HCN4KHWVC&amp;amp;keywords=introduction+to+networking&amp;amp;qid=1561161870&amp;amp;s=books&amp;amp;sprefix=introduction+to+networking%2Cstripbooks%2C191&amp;amp;sr=1-3"&gt;Introduction to Networking&lt;/a&gt; explains how data is encoded and sent over the internet&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=sr_1_3?crid=1BPMZ8RWH3S70&amp;amp;keywords=cracking+the+coding+interview&amp;amp;qid=1561161894&amp;amp;s=books&amp;amp;sprefix=cracking+the+coding+interview%2Cstripbooks%2C160&amp;amp;sr=1-3"&gt;Cracking the Coding Interview&lt;/a&gt; explains the data structures that are the building blocks for algorithms&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Mastering-Bitcoin-Programming-Open-Blockchain/dp/1491954388/ref=sr_1_1_sspa?keywords=mastering+bitcoin&amp;amp;qid=1561161993&amp;amp;s=gateway&amp;amp;sr=8-1-spons&amp;amp;psc=1"&gt;Mastering Bitcoin&lt;/a&gt; explains how a publicly powered peer to peer network can use a protocol to consistently and reliably reach consensus&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Silence-Wire-Passive-Reconnaissance-Indirect-ebook/dp/B008FRNHVY/ref=sr_1_1?crid=2AQUB3YLRTCK8&amp;amp;keywords=silence+on+the+wire&amp;amp;qid=1561162014&amp;amp;s=gateway&amp;amp;sprefix=silence+on+the+wire%2Caps%2C172&amp;amp;sr=8-1"&gt;Silence on the Wire&lt;/a&gt; explains how widely used tools, libraries, and hardware components are vulnerable to exploitation&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>interview</category>
      <category>computerscience</category>
      <category>books</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
