
Sign up to save your podcasts
Or


Jason Kiernan is a 28 year old pharmacist who lives in the south-west of Ireland.
He's been working as a community pharmacist since he was more or less 21, but after a few years on the job, his work started to get pretty routine and boring.
So craving more of a challenge, Jason set out to get a degree in Computer Science from the University of London's distance learning program.
He breezed through his first year of courses, but into his second year he hit of bit of a wall with Algorithms.
Specifically Jason couldn't wrap his brain around something called Dykstra's algorithm. It's an algorithm for determining the shortest path inside of a graph of nodes.
Thankfully some of the tutorials on Data Structures that I offer on YouTube helped bring things into focus for Jason.
After being exposed to some of these free tutorials I offer, Jason actually decided to dive head first into Coders Campus and went through the Java Super Course and a few others to help speed up his learning.
Jason stresses how the time involved in learning all of the “theory” that you receive from a formal education is great, but it's not really something that you'll be using out in the real world. For this reason, he loved the Coders Campus as it focuses on exactly the skill-set that you need to develop in order to be successful out in the real world.
He outlines a hypothetical scenario where you take 4 years to get a degree in programming versus a scenario where you take 2 years to go out and learn to code on your own in a self-directed manner. If both paths lead to the same outcome (which they absolutely can), then you can do in 2 years what will take many others 4 years… so, imagine what you can do with an extra 2 year head start!
Our conversation then steers into the darker side of programming.
Ladies and gentlemen, learning to code is VERY difficult. At some point in your journey, you will want to give up. You'll think that you're “not smart enough to be a programmer”.
Trust me, we've ALL been there, myself included.
With the right teacher(s), the desire to be a programmer, and enough time, I'm confident that anyone can become a programmer.
The problem is that SO many people give up early because they don't find good enough teachers, or they just don't truly have the desire to be programmers.
My advice is that if you truly do want to be a programmer and you're struggling to learn, make it a priority to find a teacher that “makes things click” when you learn from them. Because the right teacher can change the game for you.
Jason admits then when he first started his journey of learning how to code, he was a bit obsessed about figuring out the “right” language to learn. He didn't want to learn a language and then spend years paying for a bad decision.
This is a VERY common question asked by beginners, and it spawns thousands of comments from programmers all saying that you should learn the language(s) that they know. People will subjectively argue about why “this language” or “that language” is to best to learn.
The truth of the matter is that, so long as you're learning a language that's fairly popular, you really can't go wrong.
There are two main reasons why this is the case:
Diving further into the first point, learning your second language will be orders of magnitude easier than the first.
My first “real” attempt at learning a language was learning Java. I went through university and then used it out in the real world. I'd say that it took me a couple years of working with Java every day to feel quite comfortable with the language. And by “comfortable”, I mean that you could give me a large project to work on and I could get it done on my own within a reasonable amount of time (so long as I had access to the internet).
But then I learned the Objective-C language, and it only took me two months to go from knowing nothing about that language to publishing apps in Apple's App Store. So that's a decrease in learning curve by a factor greater than 10.
My advice here is to try your best to pick a language that will open doors for you. If your goal is to get a job as a programmer, then Java is a fantastic place to go because of its popularity in the working world. If your goal is do game development, then maybe C++ is your best bet as it has some great libraries and frameworks for game engines. If your goal is just to learn for fun and challenge yourself, maybe Python is your go to language because of its fairly easy to learn (compared to other languages). If your goal is to be on the cutting edge of technology then maybe choosing one of the new languages created by a mega-corporation is the choice for you.
The point here is that going from Java to C++, or Python to Java, or from GO to Python doesn't take too much additional effort because the fundamental aspects of programming don't change between languages. An IF statement is still an IF statement, a LOOP is still a LOOP, a variable is a variable… doesn't matter which language you're using.
The second point I'd like to expand on is the fact that some companies use SEVERAL programming languages within a single application.
Take Uber, for example, a super popular app these days that's used to hail a ride in real time from your mobile phone. Uber's application uses Python, Java, Objective-C, JavaScript, and Node.JS (and probably others too).
This myriad of languages can be made possible through the use of RESTful APIs. When creating a RESTful web application, you're allowing your app to essentially be “language independent”. This means that certain functions of the app can be done using one language, and another function of the app can be done using a second language. And these two functions can “call” one-another and communicate between each other just fine.
The reason this is possible is because we're using a somewhat “universal” language to communicate between the languages. A RESTful web application uses HTTP Requests to make the calls between functions, and the data that's returned is in JSON format (JavaScript Object Notation), which can then be decoded by the specific language you wish to use.
So a JSON response can be decoded into a Java Object, or a Python Object, or a Node.JS Object etc.
Pretty neat stuff!
Jason has made the connection that many of us have made in our lives, and that's the realization that computers are the future of humanity (whether you like it or not). And if you want to play an active role in that future, you need to know how to communicate directly with a computer. So learning software development has become a bit of an obsession for Jason.
He's spent countless nights working past 1AM completely enveloped in the flow of writing code. And the reason why Jason can be learning and coding well into the morning hours, is because he shares something that I have as well, a series hunger for knowledge.
Perhaps this is something that you have as well?
This is the reason why I quit my day-job as a professional programmer back in 2012. I wasn't really learning much at my job anymore, and I was seduced by the call of becoming an Entrepreneur. I had NO clue what was needing to be my own boss and create my own business from scratch… but that potential thrill was very similar to the thrill of creating my own application from scratch back when I was just starting to learn how to code.
So this is why Jason has been able to “keep at it” and not give up in his pursuit of learning the Java language. The coder's journey is a challenging road, but if you have that hunger to keep learning, then you'll do just fine in this field.
So as our interview came to a close I asked Jason if he had any parting words of wisdom he could share with everyone.
He said not to be afraid to reach out and ask questions. There were TONS of “stupid questions” that he asked and would get responses from people saying “You're complete off base with where you're going here.” But he would always get the help that he needed, and he would learn from that experience.
Sure every once in a while you'll get a bit of a rude response from someone on the internet, but as Jason puts it “That's just human nature, you'll always see videos on YouTube with 10,000 likes and 10 thumbs down”, you can't please everyone and there's always someone out there having a bad day who wants to rain on your parade.
Jason also urges people to try and wade through the “fluff”, be critical of the time you've allocated to learning. Do you want to spend 3 hours learning some fancy theory that you might never use, or do you want to spend it going “hands on” and building something that will take shape before your very eyes.
And to finish things off, there's one last piece of advice that I'll give to you based on what I learned about Jason and his experience learning how to code.
Jason did something remarkable in my opinion when he recently reached out to potential employers and asked for an interview. Even though he knew that he didn't “know it all” he wanted to see where his potential gaps were and see if a company would actually be willing to hire him.
In the end, he got his wish and a company near his hometown invited him into an interview. They were so impressed with the amount of knowledge that he had, they were actually willing to open up a position for him if he could commit to working full-time for a number of years.
So in that moment, Jason achieved the goal that many of you are trying to get to, which is a job offer. The difference here is that he just reached out and tried to grab it TODAY as opposed to continuing to grow his skill-set to be “the perfect candidate”.
The analogy here is that “perfect” is the enemy of “good”. If you spend your life trying to be the perfect coder, you'll never get there. Your goal is to get “good enough” to apply and then see where life takes you.
The worse thing that can happen is that the potential employer will say “no you're not ready yet, come back when you know how to do [xyz]”, and that outcome is EXTREMELY valuable, because now you're armed with knowing EXACTLY what you need to land a job.
So all that's left to do, is to put in the work and fill that knowledge gap so you can come back swinging a second time.
The post EP27 – Jason Kiernan – From Pharmacist to Programming Job Offer in 2 Years appeared first on Coders Campus.
Chances are you already have some experience with programming as this blog namely focuses on the Java programming language.
If you have a background in Java, then the structure of the IF statement in JavaScript will look very familiar to you. In fact, it's identical, so if you feel like reading more about it then by all means feel free, but it will just serve as review.
This article is written for those of you who haven't a clue how to write an IF statement, and perhaps you're even confused as to what an IF statement is. If that's you, then you're in the right place.
An IF statement is a type of control structure.
Control structures represents the concept of modifying the flow of execution of the code in your program.
So, typically speaking, the code you write will be “executed” by the JavaScript engine from top to bottom and left to right.
This means that if you write 10 lines of code, it will execute each line of code, one by one from line 1 to line 10.
Here's an example:
When you run the above code, it outputs the following:
So, as you would have expected, you see the output of the five lines of code appearing one by one in proper order. This is because the code is executed from top to bottom.
Now, like I mentioned above, the concept of a control structure is to modify the flow of your code. So it could mess with the default “top to bottom” ordering. Of course, this modification of the flow of code isn't random, it's chosen specifically by YOU the programmer. You can use different kinds of control structures to modify the default flow of the code.
So in the case of the IF statement, you can have the JavaScript engine SKIP certain lines of code.
An IF statement is made up of three main parts.
Knowing that you'll need to use the “if” keyword is hopefully pretty straightforward, so I'll just fly on by that part and talk about the condition.
An if statement requires you to have a condition, as this is the fundamental aspect of the if statement.
There needs to be some sort of a “question” being asked and answered (the condition). The condition MUST be a true or false (yes or no) question. If the condition is NOT a true or false type of question, then you'll get an error and your program won't run properly.
If you've structured your condition to be a true or false question, then you must outline the scope of your if statement.
By “scope”, I mean how much of your code will be affected by the if statement. You see, an if statement's purpose is to SKIP a certain number of lines of code when the condition's answer is false.
This means that if the question asked inside an if statement results in a false, then the JavaScript engine will skip ALL the code that is contained within the scope of the if statement.
At a minimum you must have one line of code that the if statement can affect, at the maximum, you could put your entire program inside of one if statement… however, this would be a bit silly and not practical.
Alright, so now that we've talked about the main aspects of the if statement, let's talk about syntax.
Let's assume that we want to modify our previous code and change it so that it will NOT output the first piece of text. In other words, we want it to omit the sentence “I'm the first line of code“. How do we do this?
Well, before we can write our code, we need to determine what our condition is going to be!
In this case, let's keep things simple and base our condition around the value of a boolean variable called showFirstLine.
So the showFirstLine boolean variable will have either a true or false assigned to it. In our example below, we'll set it to false (as we want to skip the first line of code):
Alright, so what we see above is that we've declared our showFirstLine variable and assigned it the value of false as promised.
Now because the showFirstLine variable is set to false, it will have a “skipping” effect on any conditional statement.
You'll notice that we refer to the showFirstLine variable inside of our if statement above. We ask the question “is showFirstLine equal to true?” (this is the conditional part of our if statement). Since the answer to this question is false, the JavaScript engine will SKIP the entire scope of the if statement.
The “scope” is measured by the open and closing curly brackets {} in the code snippet above. Do you see how the code console.log("I'm the first line of code"); (on line 4) is “wrapped” inside of the scope of the if statement? This means that the “scope” of the if statement only applies to line 4 of our program above.
Therefore, since the conditional statement (the question) evaluates to false, the JavaScript engine will skip everything inside of the scope and therefore will NOT output the string to the console. The resulting output will be:
Alright, having seen the basic IF statement, let's get a bit more advanced and talk about the IF..ELSE statement.
This concept is very common inside of all programming languages.
The IF..ELSE statement was created for those times when you have more than two possible outcomes for a specific question.
So, in the case of our example above, we just had two possibilities for outcomes, true or false. This was the case because we were using a boolean as our variable inside of the if condition.
Now let's use a variable that has more than one outcome. Let's use a number!
How about we try to write some code that will only output a single sentence from our example program? Let's write it so that we have to enter a number (from 1 to 5) that represents which sentence we wish to see.
So if the variable is set to 1, it will output “I'm the first line of code”, if the variable is set to 3 then it will output “I'm the third line of code”.
Make sense?
Let's have a look at the code:
So in the code above, we have a couple of things going on. The first thing to note is that we now have a bunch of if statements, and all of our if statements are asking a question related to the lineToShow variable. And, we also have that last part which doesn't ask a question, it just says else.
Allow me to tackle the first part of what's going on here, and it relates directly to code flow.
With an IF..ELSE statement (which really in this case is the IF..ELSE IF..ELSE statement, but that's just too long to write) the flow of your code will only go into ONE of the scopes of the overall if statement. This is directly related to the fact that we are using the keyword else if (and else) in our overall if statement structure.
This means that once ANY of the conditional statements evaluate to true, it will execute the code within the scope of that if statement, and then then JavaScript engine will skip ALL the rest of the code that pertains to the overall if statement.
In the next section, I'll be sure to show you a visualization of the code flow so that it'll make more sense to you.
But before I jump to the visual part of the description of an IF..ELSE statement, I want to talk about the ELSE part of the if statement.
In the event that NONE of the conditions in the overall if statement structure evaluate to true, then the code will automatically flow into the else scope of the if statement.
Having said that, the output for the code above would be:
Because I'm such a visual person, I want to give you an idea of what lines of code will be executed by the JavaScript engine. I'm going to use some yellow highlighting to indicate that the JavaScript engine has traversed over a line of code.
I'll start with the most recent code snippet:
if (lineToShow == 1)
else if (lineToShow == 2)
So you see that once the JavaScript engine goes into the scope of the first part of the if statement, it exits the overall if structure and doesn't even try to evaluate any of the ELSE IFs or the ELSE. This is just how the if statement control structure works in terms of the flow of code.
Let's use another piece of code where we'll change the lineToShow variable to a different value. Pay attention to the difference in the way the code flows in the following example:
if (lineToShow == 1)
{
{
else if (lineToShow == 4)
So you see here how it evaluates but skips the scope of the if statements that correspond to lineToShow == 1 and lineToShow == 2? This is because it the if statements there are evaluating to false, and therefore the JavaScript engine doesn't go in and execute the code inside of their respective scopes.
Okay, let's look at one last example. I'm going to change the value of lineToShow to be something other than 1 through 4:
if (lineToShow == 1)
{
{
{
{
Voila! You see that the JavaScript engine has to go through and evaluate EACH of the IF..ELSE IF statements and finally (since they're all false) it goes into the ELSE scope and executes that code, then exits.
Hopefully the visual breakdown here has helped you better understand how the IF..ELSE statement structure works.
IF statements are extremely common in the programming landscape, and the JavaScript language is no exception to that rule.
If you're having trouble understanding how this stuff works, please feel free to leave a comment below and ask me a question, I'll answer it ASAP.
And I'd also suggest you enter your email address below, you'll get a cool “goodie” delivered directly (and instantly) to your inbox.
The post EP26 – IF Statements in JavaScript appeared first on Coders Campus.
Although the JavaScript language doesn't allow you to explicitly define a type when you declare a variable, this shouldn't lead you to believe that JavaScript doesn't have types (because it does).
JavaScript uses dynamic typing, and therefore this means that the JavaScript engine will choose the best data type for your variable based on its value.
So this begs the question, what data types could the JavaScript engine choose for my variable?
Here's a quick summary of the JavaScript Data Types:
obj[MY_KEY] = 123;
The Boolean data type in JavaScript is a primitive type.
It is a pretty straight forward data type as it only contains two valid values (true, false).
Booleans are used when testing conditions. Conditions are found inside of control structures like an if statement (which we'll talk about in the next article), or a while loop.
You're probably already familiar with the concept of Booleans, so let's move onto the next data type.
It's perhaps a bit strange to have null exist as a data type, but nevertheless it does in JavaScript.
Another strange bug inside of JavaScript is that if you inspect the “typeof” null, you'll actually receive Object as the type.
In any case, in an attempt to stop confusing you, just know that null is used to represent “nothing”. It's typically used as a place holder for an object.
Not to be confused with null, the undefined data type in JavaScript is used to tell the coder that a variable has been declared but hasn't yet been assigned any value.
So when we write the code var aVariable;, the resulting data type for aVariable would be undefined as we haven't yet assigned a value.
What you could do if you wanted aVariable to no longer be assigned as an undefined data type, but still didn't want to assign anything truly meaningful, you could assign it the null type.
What I personally enjoy about JavaScript is that it only has one data type to specify a number, and that's just the Number data type.
When you think about the Number data type in JavaScript as it relates to the Java language, you can state that a Number in JavaScript can be an Integer, a Double, a Float, or a BigDecimal all at the same time. So you don't need to worry about the crazy details about how JavaScript is going to handle your numbers!
One helpful function in JavaScript that relates to the Number data type is the isNaN() function.
This function is used to determine if a value is “Not-a-Number”. It's a bit confusing as you're working on things in the “negative”, so if you want to check if something is a number you're looking for a boolean value of false when running the isNaN() function.
A String is likely the most commonly used data type across any modern programming language.
A String is a data type that represents any combination of characters, special character and/or numbers that are assigned to a variable. Typically, Strings are used to store English language sentences, names, or even numbers!
You can think of Strings as a sort of “catch-all” for all the data types. What I mean by this is that if the JavaScript engine can't figure out what data type to assign your variable, it's probably going to just assign the String data type to your variable.
Strings also have a wide variety of functions and properties that make them extremely versatile and useful in the JavaScript language.
We'll be diving into details in later articles with respect to all the things that you can do with Strings.
The Symbol data type is a new addition to the JavaScript language.
It's unique and immutable. It's unique because any Symbol that is created in your code is guaranteed to be different from any other Symbol you create. It's immutable because you will not be able to change the value of any Symbol after it has been created.
Symbols are typically used as keys for properties due to the fact that they are unique and immutable.
If you want to read more about Symbols, I found a great article here.
Probably the most powerful and flexible data type in JavaScript, the Object data type is the only type in JavaScript that isn't a primitive type.
Since the JavaScript language is Object oriented, the Object data type exists to fulfill its obligation.
What's neat is that you can create an Object and assign properties to it in two different ways.
The first is to create properties in an Object by using dot notation like so:
This will create an Object variable called person with three properties that you'll be able to access like so:
Alternatively you can also use something called JSON (which is an acronym for JavaScript Object Notation) to create an Object in JavaScript.
The equivalent person Object can be created with JSON like so:
Note: There are subtle differences between the two person objects that get created by the JavaScript engine, but these differences aren't worth mentioning now as they are a more advanced topic.
The post EP25 – JavaScript Data Types appeared first on Coders Campus.
Variables in JavaScript are used like variables in any other programming language. They are used to store data for the period of time that a user has a particular web page loaded.
Let's say we want to keep track of someone's name while they are visiting a particular webpage, we could collect their first name using something like the prompt keyword in JavaScript (which we'll talk about in a later article). Once we've prompted the user for their name and they have entered it, we would need to store it somewhere… this is where variables come in handy.
To store something like a name, we'd use code like this:
When you're declaring a variable in JavaScript, there are two mandatory things (and one optional thing) you need to use:
In the example above, we've used the keyword var which tells the JavaScript engine that we wish to declare a variable. We also specified a name for the variable, in this case we used myName as the variable's name. If you've ever used a programming language before, you should be completely comfortable with this. If this is your first time, then keep reading. Finally, and optionally, we've assigned a value to our variable: "Trevor Page" is the String we've assigned.
Now if we were to type in the variable name myName somewhere below the example code above, then we can retrieve the value that's been stored in our variable.
To display what we have stored in our variable, we could use the alert function to display a popup alert on the screen showing the contents of the myName variable.
Here's what that code would look like:
All this code will do is display an alert box which will contain the contents of the myName variable.
Let's actually SEE this code in action shall we? Go ahead and click the button below and then type in your name:
Remember that with JavaScript, variables are dynamically typed, so this means that you do NOT need to specify if your variable should be a String, or an Integer, or whatever other data types exist in JavaScript. The JavaScript engine will run an algorithm in the background and determine what the type of your variable should be on your behalf.
This is a time saving process that will free up your precious brainpower to focus on more important things, like what to eat for dinner!
Since JavaScript handles a lot of the grunt work when it comes to variables, there's really not much else to talk about.
If this is your first time learning about variables, I'd also suggest you read another article where I go in depth on how variables work (as they pertain to the Java language), just click here to read more about variables.
And as always, don't forget to fill out the form below and receive a free goodie delivered directly to your inbox. More detail on the free swag below!
The post EP23 – JavaScript Variables appeared first on Coders Campus.
Today I'm joined by John Thompson to talk about the newest release of the Spring Framework.
Spring hasn't seen an update since 2013, so version 5 will be released to a bit of fanfare.
The biggest updates to Spring 5.0 will be that it's making use of Java 8, which means that your application will need to adopt Java 8 in order to use Spring 5.
The other big talking point with Spring 5.0 is its new “reactive and non-blocking web framework”.
With reactive and non-blocking programming you're going to be writing code in a more functional style that will be more “performant” under load.
Learn all about the cool new features by listening to the podcast above.
And don't forget to join the early access wait list by clicking here.
The post EP22 – What’s New in Spring 5 with John Thompson appeared first on Coders Campus.
JavaScript is an object oriented programming language that was created specifically for the web. JavaScript adds functionality and interactivity to websites by allowing your plain old HTML pages to actually have their own programming language embedded inside of them.
You see, HTML isn't really a programming language, it's what's known as a “markup” language, which is really just used to describe how to present text in your browsers.
So what JavaScript brings to the table are all of the common programming elements to your HTML pages.
This means you'll be able to use fun things like control structures, data structures, data validation, even an in-browser database if you feel the need to get fancy!
JavaScript brings websites to life and makes them more than just a glorified electronic newspaper.
Although they share the same root word, these two programming languages are quite different in the way they work under the hood.
Sure a gas powered car and an electric car are both cars… but they use very different means of propulsion. Same concept applied with Java and JavaScript. They're both programming languages, but they live in very different worlds.
A common thought that Java programmers have when learning JavaScript is “Where do I download the JavaScript programming language so I can start using it?”
Well the beauty is that you don't need to download it, JavaScript already exists inside of any internet browser you use. Just goes to show you how tightly coupled HTML and JavaScript are ;)
So that brings me to my first real talking point about JavaScript.
Because JavaScript exists inside of the browser, this means that it's a client-side programming language.
We call JavaScript “client-side” because all the code that you write will actually exist inside your users' browsers and that code will be executed by the JavaScript language that ALSO exists on your users' browsers.
Compare and contrast this “client-side” idea to the Java language. Java is a “server-side” language. This is the case because when one of your users interacts with a web application that's powered by Java, the user won't ever see your Java code. The Java code exists on YOUR web server (either in your house or in some hosting companies data-center), never on the users' computers.
This client-side vs server-side distinction is just the start of many important differences between the two programming languages.
Alright, so one language exists in the browser, and on exists on a server… so… in what situation should I use JavaScript and in what situation should I use Java?
This is a great question!
The answer will depend on the project you're working on. You see, Java is typically chosen as the “go-to” programming language when you want to build “enterprise” level applications. What this means is that if you're wanting to build an application that will be used for business purposes and will be a fairly large application with hundreds or thousands (or millions) of users, then Java is probably your language of choice.
If you're building a smaller application, like a single player game that won't require concurrent users, or if you're building a simple application to handle the processing of forms, then JavaScript might be your go to language. Or perhaps you wish to build an “offline” web application, one that can be used with or without an internet connection, then JavaScript with HTML5 is a great option!
The big thing to point out here is that this isn't a “one or the other” type of scenario. When I build my web applications, I use BOTH Java and JavaScript.
I typically use JavaScript to be my “front-line” or “presentation layer” support for validating any forms, interacting with the users and dynamically changing the elements on an HTML page. Then I'll use the Java language on the back end in the “business layer” of the application to process the data that was validated and sent from the “presentation layer” (or HTML + JavaScript layer).
So Java and JavaScript actually play quite well with each other.
Well one big difference you'll notice between the two languages is how JavaScript's variables work.
You see, JavaScript uses something called Dynamic Typing. This is a topic that we'll cover in the next article. But the quick version is that you don't need to assign a “type” to your variables like you do with Java. Java uses something called Static Typing, which requires you to declare what types your variables will be (i.e. String, Integer, Double, etc).
JavaScript uses a sort of “guessing system” to choose a data type on your behalf so you don't need to. But like I said, we'll talk more about that in the next post.
JavaScript is here to stay and it's an extremely useful language to learn and use. I'm actually predicting that JavaScript will knock Java off of it's #1 spot as the most popular programming language in the coming years.
JavaScript is embedded right into your browser and it was designed to easily interact with HTML elements, so it's the perfect language to use when you want to “spice up” your boring HTML web pages with dynamic programming.
The post EP20 – What is JavaScript? appeared first on Coders Campus.
For more detailed show notes, please see the actual “ultimate guide” post via this link.
The post EP19 – Forwarding Your Domain to Your AWS Application appeared first on Coders Campus.
For more detailed show notes, please see the actual “ultimate guide” post via this link.
The post EP18 – How to Create and Configure a Database in AWS appeared first on Coders Campus.
For more detailed show notes, please see the actual “ultimate guide” post via this link.
The post EP17 – Deploying Your Code to Elastic Beanstalk (AWS) appeared first on Coders Campus.
For more detailed show notes, please see the actual “ultimate guide” post via this link.
The post EP16 – Ultimate Guide to AWS – Part 2 appeared first on Coders Campus.
From the publisher's feed