Project Shift Blog

What Programming Language Should I Learn?

You’ve decided you’re ready to take the plunge and start learning to code, but where do you start? There are so many resources and SO many opinions out there, it’s difficult to cut through the noise to understand what’s important in the beginning.
Read More

Alumni Spotlight: Wes

Last week we had the chance to catch up with Project Shift Alumni and Software Engineer, Wes Jourdan. Wes works for Fugitive Labs out of The American Underground in Downtown Durham. Before entering Project Shift, Wes worked in a variety of jobs in logistics and the restaurant industry. He was dead set on teaching himself to code through online platforms before applying and being accepted to Project Shift's January 2018 fellowship.
Read More

4 Essential Behaviors Required to Become a Developer

Over the last several years as we’ve taught and developed new software engineers, we’ve met with dozens of software engineering leaders from across the world. From large international tech corporations in Israel, small tech startups in Austin or Durham, Google, IBM, you name it, we’ve met them and asked them the same question: “What are you looking for when you hire new software engineers?” Astonishingly, all of these VP’s of Engineering and CTO’s share a common answer because they share a common problem. They have a hard time finding and retaining top tech talent, but perhaps not in the way you might think. Sure, everyone is looking for an experienced developer that can be a leader and increase their company’s productivity, but there’s something deeper they’re looking for that is actually more difficult to find. Last year I asked this question to On Freud, WeWork’s VP of Engineering in Israel. If you didn’t know, WeWork is currently valued at $20 billion, and though they primarily operate in physical spaces, their tech platform is quite robust as it manages over 120,000 companies across its 156 offices worldwide. WeWork’s founder and CEO, Adam Neumann, told us that their engineering department has no budget. The department is allowed to hire any time they find talented developers regardless of the company’s openings. In our conversation, On went on to explain that despite having the prowess of WeWork’s budget and it’s expanse across New York and Tel Aviv to find top talent, it’s not the actual talent or experience of the developers themselves that he’s most attracted to. In fact, when we spoke last year, he had never fired a junior developer (less experienced engineers) because the juniors that he hires encompass seemingly unteachable behaviors that go beyond experience and knowledge. For new developers without a Computer Science degree, like you, this is good news! It means that the following behaviors are more important for obtaining a job than any experience, degree or education you might receive. However, these behaviors are difficult to obtain as they require you to be passionate, authentic and humble. Let’s look and think about how we might adopt these behaviors. Curiosity This is the one I’ve heard far and above any other - engineering managers want to hire passionate, hungry and curious developers. You’re not satisfied with, “it works”, but you want to dig deeper behind the code and know why it works. Being curious means you feed off the “aha!” moments - you actually enjoy the process of learning and you’re confident that your search (when you have an issue) could result in a unique discovery. To adopt curiosity, you need to take on a child-like spirit of asking “why” all the time. Not just of code, but of everything. Figure out what makes people, governments, ideologies, infrastructures, and the lawn mower, tick. Embody this, and you’ll be well on your way to set yourself apart as you learn to code. Fearlessness This piggy-backs really well with the first characteristic. It’s only natural for us to fear failure, especially at this stage. Our confidence as beginners is very fragile and we’re constantly dealing with “imposter syndrome”. One failure could set us spiraling into doubt about this whole coding thing. Not only that, but we’re also fearful to admit just how much we don’t know, even to ourselves. However, ironically, this is where the real learning happens - on the frontier of curiosity and failure. But what’s the worst that could happen? You break your project? You waste a couple of hours? Not even that, because even if you don’t “figure it out”, surely you’ll learn something. All that to say, there is no logical reason to fear trying new things at this stage. You have nothing to lose and everything to gain. Go for it, dive in, and discover something new. Ownership Perhaps the most consistent advice I received as an engineer from the VP of Engineering at a company I worked for was to take ownership of what I was building. This was really scary to me as a brand-new engineer working in a company with 20 of the city’s best software engineers - I was literally the worst engineer on the team, yet the VP of Engineering (who was also the co-founder) was urging me to own my code - to write it with confidence in such a way that it could stand side-by-side with the “big- dog” senior engineers. I even had to write my code in such a way that someday those “big-dog” seniors could add to it and make it their own too. When things get tough, remember to be fearless. Everyone has been at this stage before and mistakes are inevitable, but it’s where you learn and grow and everyone knows that. Steady Developing software projects can be an emotional roller coaster. Have you ever heard the saying “20% of the project takes 80% of the time”? Inevitably you will have an experience where you start a project and knock out 80% of your perceived workload ahead of schedule and in the end, you will run behind because something else ends up taking longer than planned. This is just one example of the emotional roller-coaster. So this is going to happen, but how are you going to handle it? What will you do in the face of failure? When you need to refactor your code so much that you need to scrap something that took you hours to build, what will do you? Great programmers learn from it and move on. Go for a walk, drink some coffee and get back on the horse. Lastly, we’ll leave you with a quote from YCombinator founder, Paul Graham: "Can you cultivate these qualities? I don't know. But you can at least not repress them. So here is my best shot at a recipe. If it is possible to make yourself into a great hacker, the way to do it may be to make the following deal with yourself: you never have to work on boring projects (unless your family will starve otherwise), and in return, you'll never allow yourself to do a half-assed job. All the great hackers I know seem to have made that deal, though perhaps none of them had any choice i n the matter."
Read More

Adopt These 4 Essential Behaviors to Become a Software Developer

Over the last several years as we’ve taught and developed new software engineers, we’ve met with dozens of software engineering leaders from across the world. From large international tech corporations in Israel, small tech startups in Austin or Durham, Google, IBM, you name it, we’ve met them and asked them the same question:
Read More

Why We Teach Fullstack Software Engineering

Note: This is Part 1 of a multi-part blog series which outlines the core principles of Project Shift's 12 Week Software Engineering curriculum.
Read More

Cohort Project: Rebuilding Slack from Scratch

Project Shift students build dozens of projects throughout the course, but there’s an extra focus on the two final projects they present upon graduation at Demo Night (the last day of the cohort). One of these projects is an individual project, and the other is their “Cohort Project”.
Read More

5 Important Ways To Evaluate Coding Schools

If you’re considering a career in coding, then you’re probably already well aware of the fact that you don’t need a Computer Science degree to do it. However, weeding through the dozens of code schools you see online is a difficult task. Unlike Computer Science degrees, these schools have very little regulation, making it hard to make a decision on which school to pursue. Therefore, you must adopt a criteria for evaluating code schools. When choosing a code school in Raleigh, NC, these are the things you should look out for:
Read More

Cohort One: First Hackathon

Last week, our students completed their first of 3 hackathons! They began on a Wednesday afternoon where every student pitched a project idea and was then assigned groups based on the most popular ideas. Once the students settled into their groups they began sketching out wireframes and thinking through how they needed to structure their applications. All groups were required to implement React, Redux, and an API of their choice. They were given 48 hours to complete their projects before presenting to one another on Friday afternoon.
Read More

We're Going All In On Our Students

To our knowledge, we’ll be the first coding school in North Carolina (including universities) to ever openly commit to publishing all our hiring statistics and student outcomes. Isn’t that the goal of all this? No one quits their job and invests in a program like ours unless there’s a significant shot that they could transition their careers and change their lives. The same goes for university degrees, but that’s another story.
Read More

Logging 1000 Hours of Coding

Learning how to code? Let’s face it, this is hard and the odds are stacked against you. If it was easy, everyone would learn to code and get a high paying job, but not everyone was meant to do this and part of this journey for you might be discovering that you’re not meant to do this. But if that’s the case, don’t let it be because you didn’t count the costs, were too afraid to work hard, or worse yet, because you didn’t know what you needed to do to make the career transition. So if you’re going to do this, and make it, you’ve got to face the mountain and not pretend it's just a hill.
Read More
Subscribe