Skip navigation
All Places > In the News > Blog > Author: christozzi

In the News

3 Posts authored by: christozzi

Is a coding bootcamp worth it?

 

Coding bootcamps have become an increasingly popular way of learning to program. Since the first bootcamp, Code Academy, debuted in 2011, the total number of coding bootcamps has climbed to more than 95 — and that’s only including the full-time options.

 

Most coding bootcamps cost a fair bit of money and require a significant time commitment. That raises the question: Are they worth it? And the answer is: sometimes. Keep reading for tips on determining whether to participate in a coding bootcamp.

 

What is a coding bootcamp?

 

A coding bootcamp is any type of educational program designed to teach aspiring developers how to program in a relatively short period of time.

 

The goal is rarely to teach complete development skills. Instead, they usually focus on communicating the core competencies required to allow someone who has never coded before to gain the basic level of knowledge required to write working code, and to self-teach individuals more advanced programming topics and other programming languages.

 

Coding bootcamps vary considerably in terms of how long they take, how they are organized and which learning strategies they adopt. Some operate totally online, some in brick-and-mortar settings, and some as a combination of the two. Some bootcamps are overseen by traditional higher-education institutions, while others are run by independent companies. Some are not-for-profit, while others are out to make a buck.

 

Should you take a coding bootcamp?

 

Bootcamps are certainly not the only way to learn to code. They’re also not necessarily the fastest, cheapest or most effective way. Whether or not a coding bootcamp is the best fit for you depends on the following factors.

 

How many coding languages do you currently know?

 

As noted above, most coding bootcamps cater to people who have very little or no programming skills. A few, such as Hack Reactor, aim to provide more skills to people already familiar with coding, but they are the exception.

 

Thus, if you’re a CS major who already knows how to write code, or you do basic programming in your job, a bootcamp is probably not going to help you much. On the other hand, if you have no idea how to code and want to learn the fundamentals quickly, you’re a model candidate for a coding bootcamp.

 

Do you have spare time and money?

 

Is a coding bootcamp worth it?

 

The cost of a coding bootcamp (in terms of both money and time) is an obvious factor to consider, but it’s also an essential one. Bootcamps will take up at least several weeks of your life — time that you could spend making money — and the average cost for a full-time bootcamp is more than $11,000, according to Course Report. (That said, some bootcamps, such as General Assembly and C4Q's Access Code, take a cut of your salary after you graduate, which could mean that you end up paying more overall, but you avoid a steep upfront cost.)

 

Only you can decide whether these costs are affordable and acceptable for you. Before making a choice, however, you may wish to keep in mind that post-bootcamp salaries are not as high as you might think; they average only around $65,000. That’s not a bad salary if you’re young and don’t have other educational debt to contend with. But it also means that a coding bootcamp is not the instant on-ramp to a six-figure salary that some folks imagine it to be.

 

Which type of job do you want?

 

Another money-related factor worth bearing in mind is that having a coding bootcamp on your résumé will prove much more beneficial for getting some jobs as opposed to others. If your goal is to work for a large, conservative corporation, the HR gatekeepers you’ll likely need to get past in order to land an interview may not even know what a coding bootcamp is. They may assume that only people with traditional computer-science educations are fit to work in jobs that require programming skills.

 

If, on the other hand, you hope to work for a tech startup, your potential employer is likelier to understand the value of your bootcamp education. Similarly, if you already have a job but want to add programming chops to your résumé in order to seek a promotion, a coding bootcamp can help you to do that effectively, because you’ll be in a position to explain to your bosses what you are doing in the bootcamp and why, if they don’t already have an understanding. (Of course, they’ll have to be comfortable with you attending a bootcamp while employed.)

 

Which programming languages do you want to learn?

 

Most coding bootcamps focus on teaching popular, general-purpose programming languages, like Python, Java or (in some cases) C.

 

That’s great if you want to learn to code in simple, widely used languages. If, on the other hand, you need to learn a less common, special-purpose language (like Fortran, for example) a bootcamp will prove less useful. It might give you the foundation you need to teach yourself obscure programming languages, but it won’t directly lead to the knowledge you are seeking.

 

Do you need to learn more than coding?

 

An important thing to understand about coding bootcamps is that most of them focus on teaching people to code in the narrow sense. (In other words, they teach programming.)

 

What they don’t generally teach is system administration, how to deploy applications, how to test software, and so on. Those are all tasks closely associated with programming. They are important in many IT careers, and because they often involve writing code in one way or another, even if it’s just light scripting, some people might consider them to be forms of coding. But they are not the things you will typically learn at a coding bootcamp.

 

If you seek a broader IT skillset, you may need to pursue more traditional forms of technical education, or at least take a DevOps course.

 

Conclusion

 

Coding bootcamps are a great resource. For many folks, they are a fast and cost-effective way to learn programming and achieve new career goals. But it’s important to keep in mind that they are not the best fit for every person or circumstance. Before enrolling, do a cost-benefit analysis to determine if a coding bootcamp is the best way to achieve your end-goals, whatever they happen to be.

 

One thing that you learn (the hard way, sometimes) as a developer is that the amount of time and effort you invest in writing an application does not necessarily correlate closely with the amount of functionality you actually build. That’s because there are often tools and resources available that can substantially shorten the time it takes you to achieve a desired programming goal.

 

One prime example of such tools is a Software Development Kit, or SDK. If SDKs don’t feature prominently in your programmer’s toolset, you may be missing out on important opportunities to get more programming done in less time.

 

Let’s take a look at what SDKs do and how they can benefit developers.

 

What Is an SDK?

 

In a nutshell, an SDK is any type of toolset designed to simplify development for a particular platform, or sometimes even a specific application.

 

In other words, SDKs provide resources that make it faster and easier to implement functionality that you’d otherwise have to build from scratch.

 

SDKs can take many forms. It’s common for them to include APIs (in fact, it’s so common that some people use the terms SDK and API interchangeably, though this is somewhat misleading), but SDKs can include more than APIs. They might consist simply of software libraries that make programming faster. They could also include analytics or debugging tools designed to help you build and manage an application within a specific type of environment. They may even include integrations that make it possible to communicate directly with hardware from within an application, without having to build the requisite calls yourself.

 

 

If you like analogies, think of an SDK this way: SDKs are like IKEA furniture packages. They come with many preconfigured components, as well as documentation, that make it possible to build something (a piece of furniture, or a software application) quickly. Sure, you could always go cut down a tree, hew the wood and then use it to build a bedframe by hand. But almost no one does that, because there are much easier and faster solutions available.

 

Why Use an SDK?

 

The most obvious benefit of SDKs is that they save developers time. Instead of reinventing the wheel by creating functionality that someone else has already built into an SDK, programmers can take advantage of pre-built libraries, APIs and other tools that come packaged within SDKs.

 

However, faster and easier development is not the only reason to use an SDK. Consider these other advantages:

 

  • The functionality that you get inside an SDK is often thoroughly vetted — in many cases, by the experts who manage the platform for which you’re building your app. Thus, SDK code is more reliable, generally speaking, than code you’d build yourself.
  • For similar reasons, an SDK can help you to keep your application more secure and more up-to-date, since the functionality that you implement via an SDK often comes from a trusted central source. (Keep in mind that using an SDK does not give you license to ignore potential security vulnerabilities — ultimately, you still need to own security in any app you build — but an SDK can help to reduce some security risks.)
  • SDKs often make it easier to take advantage of optimizations, such as libraries that have been optimized for a specific type of environment or hardware device. In this way, SDKs can lead to better overall app performance.

 

SDK Example: IPC SDK

To place SDKs into a real-world context, let’s take a quick look at one SDK, the Worldpay Total IPC SDK. The IPC SDK is designed to make it easy to build Windows or iOS mobile apps that use card readers and connect to Worldpay’s Integrated Payments Hub for payments processing.

 

Depending on which platform you are developing for (Windows or iOS) you would use the IPC SDK somewhat differently. (In that sense, it’s a good example of how SDKs are not a single specific thing; they’re a broad category of developer toolsets, which can be implemented in many ways.) On Windows, the SDK provides a service that in turn manages the card reader on your device. In contrast, on iOS, the SDK is available as a software library.

 

No matter how you access the IPC SDK or which operating system you’re developing for, however, you get the same core functionality. The SDK manages application access to your users’ devices’ card readers, without you having to worry about drivers or the other technical tedium that you typically have to deal with when you’re building an application that interacts with a specialized hardware device. Plus, the IPC SDK avoids passing data from payment cards through your application, which makes it possible to avoid EMV certification testing.

 

You can get started with the IPC SDK for Windows and iOS by simply downloading the requisite code from GitHub.

Conclusion

 

If you’re a developer, you could live life the hard way and write everything from scratch yourself. But there is rarely a reward for doing things the hard way in the world of programming (at least when you’re building software that people are actually going to use). On the contrary, the developers who achieve the greatest rewards are those who take advantage of tools like SDKs for building applications more quickly, and with fewer performance or security headaches.

Browser frames — also known as iframes — have been around since Netscape introduced them in 1996. Back then, iframes were sometimes used in ways that appear wacky by modern standards, such as for the structuring of content on a web page.

 browser iframes have been around since 1996

 

As a result of practices like these, iframes have gained a negative reputation in some quarters. Some developers dismiss iframes as “the web programming equivalent of the goto statement” — a hack that you use when you have to, but not an elegant solution or a best practice to follow.

 

some developers dismiss iframes 

But such criticisms of iframes are not really fair. It’s true that, like any technology, they can be abused and misused. That does not mean, however, that iframes do not have legitimate uses — some of which make them the best solution to a given web programming challenge.

 

One ideal use case for iframes is the integration of a hosted payments page into a website. Let’s take a look at why iframes are a good solution in this scenario.

 

What is a hosted payment page?

A hosted payment page is any type of web page that allows a user to make a payment online.

 

Hosted payment pages typically have to do three main things:

 

  • Accept payment information from a debit card, credit card or other payment method
  • Pass the payment information securely to a server that processes it
  • Receive and display information about the transaction to the end-user

 

Benefits of using an iframe for hosted payments

What do hosted payments have to do with iframes? The basic answer is that iframes provide an easy way to integrate a payment page into a website with minimal fuss and security risk on the part of the developers who are implementing the website.

 

More specifically, using iframes for hosted payments provides several distinct benefits for developers and end-users alike:

 

  • It’s easy for developers to implement. Typically, they only need to include a small amount of code within their website to insert the payment page within an iframe. They simply set up the iframe; the payment provider handles the rest.
  • End-users never leave the main website. Although they technically pay via a different website (the one running inside the iframe), from their perspective, they remain on the same page and site. This helps to keep users confident about the security of the payment they are issuing, since navigating to a different site could leave them concerned about whether they can trust the payment site. It also simplifies the overall payment experience.
  • Iframes mitigate the risk of users navigating away from a page before payment is complete. If you move users to a new website to submit a payment, they may become confused and press the back button or otherwise navigate away from the new site. Doing so can interrupt the payment process — and it poses an especially greater challenge if the payment is already in progress. By keeping the payment within an iframe on your site, you avoid unintended navigation issues.
  • You can update your website without worrying much about how the changes will impact the hosted payment page. As long as you leave the iframe in place, changes to the rest of the site are unlikely to impact payments processing.
  • Iframes are flexible and easy to configure. A few lines of CSS or element property definitions suffice for defining the size, layout and other features of an iframe. You can therefore easily customize how a hosted payment page appears within your website.
  • You can have the payment page time out without disrupting the overall site. This is useful in cases where a customer starts a payment but does not complete it in time. You don’t want to leave the payment page open indefinitely, because that would be a security risk. But you also don’t want your entire website to time out and shut down automatically, because that would reduce the likelihood that the customer will come back later and complete the payment. By placing the payment page inside an iframe, you can easily have just that element time out, but keep the rest of the site running and ready for the customer to use.
  • Iframes make it easy to support different screen sizes and layouts, without having to worry about the specifics of the payment page content. If your iframe is not large enough to display the entire payment page at once, or your end-user’s screen is too small, the browser will automatically create scroll bars to make content visible. In this way, iframes make it easy to integrate hosted payment pages that work well with a variety of different devices and screen types.

 

The bottom line: Iframes provide an easy, flexible and secure way to make hosted payment pages available with minimal effort on the part of your developers — and they simplify transactions for your customers.

 

About the Author:  

Chris Tozzi has worked as a journalist and Linux systems administrator. He has particular interests in open source, agile infrastructure and networking. He is Senior Editor of content and a DevOps Analyst at Fixate IO. His latest book, For Fun and Profit: A History of the Free and Open Source Software Revolution, was published in 2017.