Blog

arol.dev: Pioneering the Use of NFTs in Edtech

At arol.dev we believe in celebrating our students’ success in a special and modern way. When they complete the program, we don’t just give them a regular paper diploma. We award them with a one-of-a-kind NFT certificate. This digital certificate is special and represents their hard work. In the ever-changing world of tech, we get that it’s important to recognize our grads with more than just a traditional certificate. So we talked to one of the founders of arol.dev, Arol himself, about why we’re redefining the way academies honor their graduates.  What are NFTs? But before we get into that, what exactly are NFTs (non-fungible tokens)? Think of them as digital certificates of ownership for items or content. They use blockchain technology to keep track of who owns what. As NFTs are content, they can represent anything like artwork, videos, music, and even virtual items in video games and anything you can imagine. Here's an example: Imagine you create a digital piece of art on your computer. You could create an NFT for it (tokenize it), which would prove that you own the original and it's unique. Even if people can make copies of the art, only you would have the official NFT to show that you're the original owner. It’s a proof of authenticity.  NFTs have become popular because they give creators a new way to sell and share their work directly with fans, which lets them prove ownership of assets. This is especially useful in the digital world where you can just make copies of things and share them. But it's not limited to art. They're actually a great way to proof authenticity in an open and decentralized way. Why use NFTs as graduation certificates? Apart from the fact that graduation certificates as NFTs give students a reliable and modern way to celebrate their achievement, there are other unique benefits that traditional certificates can’t offer:  With a PDF or paper, you can send it off or show it to people but it’s not really the most credible option to prove that you’ve completed a course. This idea made sense in the past when you’d go to a job interview and give them a certificate to show your experience. If we’re being honest, those documents can be easily forged and it’s harder to verify that they’re actually real.  Trustworthy On the other hand, NFTs make your certificate more credible. With the special tech behind these “non-fungible tokens”, you can prove that it’s the original, not a copy. In the way we have them configured, the NFTs allow for graduates to share their certificates and anyone can check with arol.dev that they’re real.  For example, potential employers can check with us to confirm that the NFT is issued by arol.dev and connected to the blockchain. They can even verify it themselves without going through us and just checking the blockchain platform directly to see the transaction and the wallet with all the information proving that the student graduated from our program.  Secure With an NFT, it’s stored digitally so there are no worries about the document getting lost or damaged like a physical paper. It’s safe and reliable. Plus, your certificate can’t be faked.  Future-proofed Your NFT certificate will be stored on the blockchain indefinitely, meaning you don’t need to worry about degradation over time, it’ll still be preserved. Even if arol.dev ceased to exist (let’s hope not) the NFTs would still be accessible. Personalized  What we embed in each NFT is the graduate’s name, when they graduated, their GitHub handle, what class they were in (to foster a community) and what the certificate is for. How does an NFT certificate work? We burn the NFTs manually with our team and then create a wallet with the certificate on the Polygon blockchain, which we then send to the graduates. Basically it’s like a transfer, like how anyone sends Bitcoin or money but in this case it’s a non-lucrative NFT certificate. How do we make sure that they’re valid and secure? We have different levels of security: we program the NFTs so they cannot be transferred to just anyone: they can only be given to a student, canceled, removed, or transferred only back to the original wallet but never to another address.   Plus, the NFTs are stored on the Polygon network, a blockchain platform (backed by the Matic cryptocurrency) which also has its own security measures to protect the information.  Endless possibilities What else could we add to the NFT certificates? Well, we’re open to ideas, of course, but it’s nice to keep it simple. NFTs offer endless possibilities but we’re also looking at how to use it internally. We like to stay connected with our alumni and are already publishing content for our community of graduates. Currently we’re working on being able to implement NFTs as an authentication for a future platform where we will publish all this content in a more centralized space. You log into the platform and instead of using a username and password, you connect the wallet with the NFT and gain access to all the material.  Bridging innovation and education  Our software engineering academy is all about the latest tech and staying ahead in the field including finding new ways to celebrate achievements. We teach students to think ahead and give them an edge in the tech world.  What makes us special is our focus on new ideas and staying up-to-date with the newest technologies. Our learning experience is engaging and keeps going even after graduation. It’s not just an academy, but a community of software engineers who help each other learn and create unique solutions in the world of tech. 

Building an Express.js Application with TypeScript

Express.js is a popular web application framework for Node.js that simplifies the process of building robust and scalable web applications based on the middleware architecture. It provides a minimalistic and flexible set of features for creating web servers and handling HTTP requests and responses. There are several tools that provide a boilerplate app but rarely an Express server with TypeScript, today we are going to start one from scratch. Create a package.json file Create a minimal server with Express Installing TypeScript Final adjustments 1. Package.json We start creating a new folder where the whole server is going to be. And we execute yarn init to create the package.json . You should end up with something like this: From this point we can add new packages to the repo. 2. Test a simple script Now we can try to create a index.js and insert a simple console.log('hello world'), to test it we first need to add nodemon with yarn add --dev nodemon and then add to the package.json a new script and display the log when we execute it. 3. Create a minimal express server Let's add express yarn add express and add the following code at index.js We can add .env and .env.example files to start using environment variables. Create the files and add PORT=8080 to them. If we want to read it we need to add a package yarn add dotenv and a few lines to the express server, the file should look like: 4. Install TypeScript Time to start TypeScript, we'll need to install it along with all the types for Express and Node.js with yarn add --dev typescript ts-node @types/express @types/node @types/dotenv. Once it's installed we need to create the configuration file for TypeScript, run the following yarn tsc --init and after that will appear a tsconfig.json in the directory. Now we should have the file with the default config. target: Set the JavaScript language version for emitted JavaScript and include compatible library declarations. module: Specify what module code is generated. esModuleInterop: Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. forceConsistentCasingInFileNames: Ensure that casing is correct in imports. When TypeScript complies the code the outDir is going to define where is going to be the final code, let's set it to /dist folder. We also can change several options, change the following options in your file. Now, let's change the Express server to TypeScript. Start by renaming index.js to index.ts In addition we need to add ts-node package with yarn add --dev ts-node , modify the development script to "dev": "nodemon ./src/index.ts" and add src folder to move the index.ts inside. The idea is to set up a project to have not also the server but also have tests and types, so create 2 new folders: types: this folder will contain types that are shared throughout our entire application. __test__: as per jest convention; you can use other folder names. Here we’ll create the test that cover the entire application. Unit tests are going to go in deeper, more specific folders. 5. Final adjustments We need to prepare the server for production and real world scenarios, let's add some other packages that will help to achieve it. Set up ESLint & Prettier First let's add esLint with yarn add --dev @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint and create the .eslintrc.json with this config. We'll need a .prettierrc file with the following config and the package to avoid conflicts with esLint yarn add --dev prettier eslint-plugin-prettier Finally modify the scripts to build the app and add EsLint configuration to the package.json. We also need to change the main and source directories. Make sure you ignore important or build files with .gitignore A .gitignore file and add .env.example because the .env would be ignored. Wrapping up That's it for today, you can use it as boilerplate and forget about configuration in your own projects, a task that always takes time and it's not really interesting so you can focus on the fun part, coding.] There are still some considerations on how to type effectively an express application, but that’s for another post. Some ideas if you want to start researching for yourself. Or tune in to our social media so you know when we release more tutorials like this in the future. How to extend an Express Request with custom data from middlewares. Where to store our custom types in an Express application when using TypeScript.

Crafting Effective Pull Requests: A Guide to Collaborative Development

Developers often collaborate on projects, and one of the most essential tools for collaboration is creating pull requests (PRs). PRs are a quintessential part of asynchronous communication in software development. By honing your skills in making effective PR's, you will not only contribute to the team's success, but also accelerate your own growth as a developer. This guide will discuss six essential practices that help in making effective PRs to make you become a great software engineer. 1. Keep PRs Small and Focused It's important to keep pull requests small and focused on a specific change or feature. This makes it easier for reviewers to understand your changes and provide valuable feedback. When a PR is too large, it becomes challenging to ensure that all changes are thoroughly reviewed. By keeping your pull requests small, you increase the likelihood of receiving detailed feedback and expedite the process of getting your changes merged. Let's say you are working on a feature that involves adding a new page to a web application. Instead of creating one large PR that includes all the changes related to the new page, you can break it down into smaller PR's that build off of each other. Here's a visual representation of how this could work: Create PR #1 that adds the basic HTML and CSS for the new page. The base branch would be main/master. Create PR #2 that adds JavaScript functionality and interactivity to the new page. The base branch would the the branch for PR #1 Create PR #3 that adds server-side functionality and database integration to the new page. The base branch would be the branch for PR #2. Each PR builds off of the previous one, so the changes are incremental and easier to review. This approach also allows you to get feedback and make changes more quickly and efficiently. 2. Use Feature Flags Feature flags are a powerful way to control the release of new features or changes in your application. They allow you to enable or disable specific functionality without modifying the code. By using feature flags in your pull request, you give your team the flexibility to test and release your changes gradually, reducing the risk of introducing bugs or issues. This is because the feature doesn’t have to be fully completed before merging. 3. Include a Loom Video Demonstrating Functionality A picture is worth a thousand words, and a video is worth even more. Using a tool like Loom, you can quickly create a video demonstrating the functionality of your changes. Including a video in the PR description helps reviewers understand the impact of your changes, making it easier for them to provide meaningful feedback. In the description of the PR, make sure to also link the associated issue, provide information about any remaining work to be done, and any what kind of cases you tested including any edge cases. 4. Use Git Rebase Interactive for a Clean Git History Maintaining a clean git history is essential for tracking changes and finding the source of bugs or issues. Using  You can re-organize, squash, or edit your commits, making the history easy to read and understand. A clean git history makes it easier for your team to review your changes and understand the evolution of your codebase. This will open up an interactive editor that shows a list of all the commits on your branch, starting with the oldest one. In the editor, you can change the action for each commit to one of several options: pick: keep the commit as is squash or s: combine the commit with the previous one reword or r: change the commit message drop or d: remove the commit entirely For example, let's say you want to squash the last two commits together, reword the commit message for the third commit, and drop the fourth commit entirely. You would modify the file to look like this: Here's how to save and exit the Vim editor when using git rebase -i: After running git rebase -i the interactive rebase file will open in Vim. Make your changes to the file as needed. Once you're done, press the esc key to exit insert mode and return to command mode. To save your changes and exit Vim, type :wq and press enter. This command will write the changes to the file and quit Vim. If you only want to save your changes without quitting Vim, you can use the :w command instead. If you made a mistake and want to discard your changes and exit Vim, type :q! and press enter. This command will discard your changes and force quit Vim. Note that if you've made changes that you want to keep, you should use :wq instead of :q!. Once you've saved or discarded your changes and exited Vim, the interactive rebase will continue running. 5. Leverage Comments Strategically Comments can be added in two places: in the code itself, or in the pull request. It's important to use comments strategically to help others understand your changes. When adding comments in the code, focus on explaining complex logic or decisions that may not be immediately apparent. These comments should provide additional information that is not obvious from just reading the code. Make sure the comments are clear and concise, and avoid adding comments that simply repeat what the code is doing. In the pull request, comments can be used to ask questions or provide explanations about your changes. This can be helpful in providing context for the reviewer and helping them understand the purpose and impact of your changes. Avoid duplicating comments that are already in the code, and focus on providing high-level explanations of your changes. Remember, comments should add value and help others understand your code. Use them effectively to make your code more readable and easier to understand. Wrapping up In conclusion, creating an effective pull request is an essential skill for any developer working in a collaborative environment. By keeping PRs small, referencing related PRs, using feature flags, including demonstration videos, maintaining a clean git history, and leveraging comments strategically, you can create pull requests that are easy to review and facilitate efficient collaboration among your team members.

React in TypeScript: A Quick Guide

React is amazing, but let's face it, as the application grows you can find yourself going back and forth, changing files, just because you don't remember how you called a prop. It just adds more chaos into the freedom that JavaScript offers, which often lead to bugs. That makes it imperative to use TypeScript. The adoption of static typing can help us catch errors in advance, prevent bugs, improve code maintainability and in the long term enhance productivity we provide to the developer the best experience. I get it, it gets hard at first, that's why I created this quick cheatsheet, so you can catch up with the best static typing practices using React. It will provide you with a quick reference for commonly used patterns, syntax, and best practices when working with React and TypeScript. Here's what's covered: Props types Children types Event handlers Lift prop events Lift prop inputs useState useCallback and useMemo useReducer Prop types Let's start with the one of the basics the props. In the child we define what is going to be the type for the props Use type instead of interface to make it reusable in other files. Another version destructuring the props inline: And finally we can even define the types inline as well Children types Usually the easiest way to get this works (and tempting) is use any in the children definition, but is just use the type React.ReactNode And like before we can use the inline types as well if you prefer it. Event handler types Here we need to start using inference from TypeScript, usually this is going to be the types that we are going to use to define the props. Let's take a look to the following example. We have a click event and If we hover over it we'll se a menu displaying the type, we can take it and insert in the definition of the props. Lift events What if I want to pass events? Let's look first at the definition of the props. Now the props is going to become a function, this function will have an event as input and return a void function. We can type this event, otherwise It'll complain. To solve it just copy the last type definition and remove the Handler because now we are defining the event and not the handler. Now in the parent the event type will be lifted automatically and we can use the hover to see the definition of it again, and type it in the function. Lift values We might have the need to pass some value from the children to the parent as well. We can include it in the definition of the props. In the children we have to pass to the function the event and also the input, in this case and id and define it in the prop definition. Finally we'll be able to see the type in the parent (hovering to the event) and include in our function. UseState Looking at the following example we know for sure that the list is going to be an array with objects, containing an id and value . What we can do is define the individual type and tell the state that list is going to be an array of that type. UseCallback and UseMemo These hooks are pretty simple, it's going to infer the type of the function inside, so what we actually have to do is type correctly the function inside and what is going to return. In the case of useMemo we can even type the returned value. UseReducer It should be easy to type the state as number but the action it's a little tricky, we can have both add and subtract and place an option in the type is not going to be possible. What it can be done is place optional type for the action reducer. Resources If you want to study more about how to correctly type your React code, you can also visit React Typescript Cheatsheet which I find quite useful. Wrap up Mastering TypeScript with React can be challenging sometimes, but once you've got the hang of it, it can significantly improve your development skills. It helps prevent bugs, enhances code maintainability, and boosts productivity. In this guide, we've covered some commonly used patterns, syntax, and best practices with examples for prop types, children types, event handlers, lifted prop events and inputs, and the usage of several hooks such as useState, useCallback, useMemo, and useReducer. I hope you found this quick cheatsheet useful. As always, practice is key to mastering, so keep coding! There's a lot more to explore, and I encourage you to dig deeper into the topic and learn more about the endless possibilities TypeScript offers when used in conjunction with React. Happy coding! ✌️

6 Reasons Why Learning to Code is the Ultimate Game-Changer for Your Career

If you hadn’t noticed, almost everything and everyone on the planet relies somehow on technology. The demand for it has grown even more as companies want to innovate, boost productivity, and streamline processes. So that’s where programming comes into play. Programming is basically telling computers what to do by writing instructions (code) in a language that they can understand.  Why is it important? Well, whether you're in finance, healthcare, marketing, or any other field, coding has become an essential skill. Organizations want programmers to help add and maintain technology in their operations, and they’re willing to pay more money to do so.  Even if you’re not a programmer, web developer, or anything techie, learning to code can still be beneficial to be more creative, increase productivity, become indispensable and just stay ahead of the curb. So let’s dive into the world of coding and uncover how it can reshape your professional career: 1. Better benefits Being a programmer is a solid job and coming from a software engineering academy, we might be biased, but the benefits speak for themselves: Remote work: Imagine the freedom of working from your home or from pretty much wherever you want. Some companies might make you go to the office once or twice a week, or maybe once every few months for in-person meetings, but in general, they know better than to try to force programmers to go to the office every day.  Learning programming sets you up for more remote job opportunities and lets you forget about geographical boundaries. Who said that you can’t live in one country and work for a company in another? It’s quite common for developers to live in one place (for example, Spain) but work for a company based elsewhere (US, Switzerland, Germany, etc.). So why be stuck in a boring office when there are so many opportunities out there? Improved work-life balance: Being able to take control of your professional life and still be able to enjoy the pleasures of life outside of work is something that many people are constantly looking for. In general, developers have a lot of flexibility when it comes to working hours, schedules, and responsibilities. Unlike other roles, these positions have a lot of freedom, which allows you to fit your workday to your lifestyle. Whether it's taking breaks throughout the day to spend time with your loved ones, enjoy hobbies or even just go to the gym, developers often have the advantage of integrating their own personal interests seamlessly into their work routines. Some of our students that have come from other industries and become programmers say they have less stress and enjoy their days more now. A lot of them have more flexibility which allows them to travel and do things that bring them joy. Job security: Technology is a key element for every company out there so if you have the skills needed, then you’ll be a key asset for any organization. The worry of losing your job goes out the window and finding a new one becomes a much easier endeavor.  This field offers you a stability and tranquility that others don't have. It’s a very strong market with an ever-growing demand for talented professionals. Instead of you having to apply for jobs and try to contact recruiters, they’ll be the ones looking for you. Even if you’re not looking to work as a software engineer, knowing the basics of coding can give you more chances to advance your career and climb up the corporate ladder.  Higher salary: Programmers are a hot commodity, meaning they’re in demand and companies are willing to pay more for them. According to Glassdoor, the average salary for a software engineer in the United States ranges from 69K to over 100K.  A junior developer that comes out of arol.dev has an average salary of 30K in Spain (in other countries the average salary for juniors can be higher) . The progression to a higher-ranking role is generally quite quick, so it’s not too long before they’re enjoying some increased salaries. Be part of a supportive community: The world of coding is a very united space. It’s a place where you can share your knowledge and collaborate with others. This makes for great networking opportunities and it can play a big part in your career development.  There are tons of meetups, conferences, webinars, and workshops where you can meet other programmers or companies that might interest you. At arol.dev we have engaging and interactive events planned that you can check out here and join the vibrant tech community. It’s a great chance to share your knowledge and learn from others. With the constant innovation in the world of tech, there’s always something new to learn.  2. High demand for programmers The role of tech has been growing in all industries and with the rise of automation and AI, it’s not slowing down anytime soon. If you look up the most in-demand jobs in countries like Spain, Germany, the UK, and the US, software developers always come out on top. Software engineering employment is even projected to grow 25% by 2031 in the US alone, the fastest among all occupations (5% on average).  Industries are going through a digital transformation to simplify processes and make everything more efficient; meaning that tech is going to be used in every sector so you have plenty of options and since it can be done remotely, the world is your oyster. 3. Make an impact  At first glance, it might not seem like it, but coding can give you many opportunities to leave a lasting impact. Plenty of individuals want to leave their mark but feel constrained in their current jobs. As a developer, you can create something tangible and real that people will actively use and benefit from.  If you think about it, programming plays a vital role in almost everything around you: mobile apps, web platforms, all the software for electronic devices, social media, robotics, AI, and more, all of which have had a major impact on society. By learning how to code, you can play a part in meaningful advancements and actually see the impact of your work.  4. Problem-solving skills Programming is much more than writing lines of code. Through the process, you have to analyze data and find creative solutions. Beyond the numbers and letters, coding levels up your problem-solving and helps you learn to adapt as new challenges pop up. By diving into programming you learn to break down complicated problems into much simpler, more manageable parts. This makes it easier to identify the most important issues and how to deal with them. You then fine-tune your process as you learn new information and keep pushing forwards. These skills, along with critical thinking, are honed in the process of learning software engineering and are crucial for any job out there.  5. Enhances creativity Programming isn’t just about logic–it's a playground for your creativity. By automating those tedious, boring tasks, you can free up time and let out your more creative side.  Coding can bring your ideas to life. It’s a low-risk space where you can let your ideas run wild and develop different concepts. You can even make simulations of intricate ideas so they’re easier to understand.  Not to mention that you can get into the world of digital art with code and thanks to  artificial intelligence, the possibilities are endless. 6. Automation and efficiency Countless hours are wasted on repetitive tasks. This is why companies are looking towards programming to automate these processes and boost productivity. This saves precious time, which allows you to focus on the more important tasks at hand. It even reduces errors that would be more likely to happen by doing things manually.  It not only gives you an advantage in your technical skills, but other areas of life as well: You’ll be better prepared to create solutions to fix problems or improve workflows You’ll have a better understanding of different interfaces (from Excel to CRMs) Even if you’re not a developer, it will allow for better communication with your technical peers and improve collaboration and understanding How to start The good news is that you don’t need to spend years getting a university degree to start programming. Having a degree is helpful but there are some more effective alternatives.  If you don’t want to change careers and become a developer but you’d like to enhance your profile, there are many options available for you. Online resources, including tutorials, free materials, and coding apps, can provide you with plenty of knowledge to explore. You can also go to meetups and webinars or join coding communities where you learn more and connect with others like you. Just remember to practice. Programming is like any other skill, it gets better with repetition.   For those who are exploring the idea of working as a programmer but not sure you’ll like it: just try it out and see how it goes. Start experimenting with coding, exploring different programming languages, and trying out small projects. Try basic courses to discover the basics of coding like the fundamentals of JavaScript. It’s an immersive way to learn without the full commitment. It’s all about exploring and discovering more to see if you actually want to pursue programming further. Don’t hesitate to take the first step.   If you want to become a software engineer then there’s a coding program that stands out from the rest. arol.dev places a huge emphasis on quality, making it the best choice for anyone looking to start their coding career. As a Software Engineering Academy, our intensive, full-time program is designed to help you learn how to code in only three months. With a carefully curated syllabus, we make sure you’re learning the most in demand programming languages and tools. It’s a learning experience like no other. By joining arol.dev you’ll get hands-on experience and guidance from skilled mentors who will be there to support you through each step of the process. Whether you're a complete beginner or know your way around code, arol.dev is the platform that will give you all the knowledge you need to enjoy and succeed in the world of tech.  Conclusion To wrap it up, learning programming is essentially a superpower in today’s digital world. It can open up a world of possibilities for you whether you want to work in tech or not. Even just dabbling in code can advance your career and help you develop new skills.  Remember, if you want to learn how to code: start with the basics, practice, practice, practice, and don’t stop learning. Once you've got programming under your belt, the sky's the limit, and the possibilities? Well, they're practically endless.

Your Guide to Choosing the Best Coding Bootcamp: Key Questions to Ask

If you’re interested in learning to code, a software development bootcamp can be a way to gain the skills you need to jumpstart your career in tech. These programs are intensive courses that can take you from knowing nothing about coding to being a confident software engineer with more career opportunities.  But with so many options out there, some that are better quality and others that are better left alone, it can be a bit overwhelming. How do you choose the right one? The best way to find one that fits your learning style, goals, and budget is by asking the right questions. By the end of this guide, you’ll be ready to make a smart decision about your future.  What’s on the curriculum?  The curriculum is a critical factor when choosing a coding bootcamp. What coding languages and technologies are taught? It should cover languages that are in high demand. It’s also important to know if it teaches front end, back end, or is full stack. Look for curriculums that are up-to-date and relevant to current industry standards. The world of tech is constantly evolving and you want to make sure you’ll be learning about concepts that will give you a competitive edge in the job market and not outdated technologies. We have our own opinion on what a well structured curriculum looks like. But take a look for yourself, explore our curriculum and see why we're sure you'll agree How qualified and experienced are the instructors? A coding course is nothing without quality instructors. You want to be taught by people who know what they’re talking about and have the knowledge and expertise in the latest coding languages and technologies.  It’s important to research the instructors to see if they have experience working in the tech industry. If they have taught code before, even better. It’s become very common for bootcamps to use their recent graduates, who don’t have experience teaching, as their own instructors, making the quality of the education for the students much lower.  Instructors with actual experience not only can give you useful insights into the real-world application of coding skills and industry best-practices, but also help you understand what tech companies are looking for in an ideal software engineer.  These teachers won’t just teach you but they also guide you and essentially become mentors who will work to help you find success in your career. This means that it’s also crucial to know if they’re actively involved in the tech community. Do they attend or speak at conferences? Do they work on open-source projects? These types of instructors are passionate about their work and committed to staying updated with the latest industry trends, which means you’ll be more likely to receive a high-quality learning experience.  Is it full-time or part-time?  Whether you prefer a program that is full-time or part-time depends on your own individual needs such as your work, education, or family situation. However, in general, a full-time program tends to be more intensive, and overall, more effective. Since they’re more intensive this means you’ll learn programming skills in a matter of months through hands-on experience that’ll help you learn new concepts quickly. We believe that investing your time in the learning process is worth it if you want to work as a software engineer because it really does pay off. That’s why our course at arol.dev is 12 weeks long with one rest week. It’s a full-time and intensive program that makes the most of the learning curve. From Monday to Saturday, you’ll be fully immersed in the world of coding. Don’t worry, there’s no homework. Once you log off, that time is for you to disconnect, relax, do things you enjoy outside of coding, and recharge.  Are soft skills taught?  If there are no soft skills taught then you’ll miss out on some major elements of the software engineering profession.  Soft skills are character traits that enable you to interact and communicate well with others, making you an essential team player. These are non-technical skills that anyone can have. They have to do with emotional intelligence and other personal qualities. Some examples of soft skills are effective communication, leadership, being able to effectively give and receive feedback, problem solving, teamwork, and time management.   There are many bootcamps solely focused on the technical aspects of being a programmer and completely exclude teaching soft skills which are necessary to succeed in any type of job. Having top coding skills is great but if you don’t have soft skills then no one will pay attention to the technical part. Companies want a well-rounded professional: a team player, who brings quality and contributes to the overall success of the organization.  What do the alumni have to say?  Check reviews: Are they recent? How many are there? Do the reviews seem trustworthy? They should be mostly positive with similar recurring praises. If you keep seeing the same negative points being brought up, then that bootcamp is probably not worth your time. It’s also important to note how the school responds to negative reviews or if they even do at all. The most reliable way is to find and contact ex-students to ask what their experience was like, was it worth it, and if they’d recommend the program. Someone who went through the bootcamp is more likely to be completely honest with you and could give useful advice in finding the right coding course.  Is it remote or onsite? Decide which location works best for you and your learning style. Coding bootcamps can be remote or onsite. Studying remotely offers you the flexibility of learning from anywhere while doing the program onsite gives you a more immersive learning experience.  Remote: Doing it remotely is ideal for people who can’t relocate. It also is a good simulation of what it’s like to work remotely full-time which is the norm for many tech companies. While it does allow you to work comfortably from home, it’s also crucial to have strong self-discipline and time management skills. Without the structure of being onsite, it can be difficult at times to stay motivated and keep up with the course so in this case, it’s important to stay in touch with other remote students and support each other. If you decide to study remotely, make sure the bootcamp prioritizes the online learning process so you don’t miss out on things and can live the full experience.  Onsite:  Studying in person allows for face-to-face interactions with your instructors but also with your fellow peers. This can help students learn more effectively. Plus, it can lead to useful networking opportunities. The downside of being onsite is that it can be a big barrier to overcome for some students who aren’t able to make the commute or relocate.  Luckily, arol.dev gives you a choice. Just like how most companies these days work with hybrid teams: employees in the office and others working remotely, we do the same. You can choose between doing the program remotely or onsite at our campus in Barcelona. For our remote students, we ensure that they’re supported, engaged, and don’t miss out on anything. We even have a hybrid option meaning you can do the first half of the course remotely and then join us in person for the second half, or vice versa. You decide and we’ll do our part to give you a personalized learning experience. How much does it cost and does it have financial aid? Coding bootcamps can be costly, so it may be essential to consider the cost of the program and any financing options available. Some offer payment plans, scholarships, or other types of financing, such as tuition reimbursement programs, that make the course more affordable. Look for academies that are transparent about their costs. Bootcamps that are upfront about their costs and make it easy to find their prices can help you make an informed decision about whether the program is right for you.  Keep in mind that you pay for what you get. If a program has a very low cost, it may not be of the best quality. On the other hand, a course that is too expensive might not be worth the investment either. It’s important to find the balance between quality and cost to make sure that you’re getting your money’s worth. We don’t like to hide things at arol.dev. We are who we are and we’re proud of that. Meaning that our tuition information is clear and easy to find on our website. We offer different types of payment options and scholarships like the Income Share Agreement (ISA) option where you only pay to secure your spot in our course and start paying the tuition once you graduate and land a job. With these payment solutions, we work to make our program accessible to as many people as possible. What’s the student-to-instructor ratio? You want to make sure that you have access to instructors when you need help. Look for bootcamps that have a low student-to-instructor ratio. This means you'll receive more personalized attention and support during the program.  A smaller class size gives you more opportunities to receive the guidance you specifically need to succeed and it allows you to become closer with your peers and learn from each other. In general, it makes it easier to adapt the program to your learning style and lets you get to know your instructors and classmates better, creating a more close-knit and united group.  How much hands-on coding experience will you get? Without practical teaching, you won't be able to master programming concepts and skills. It’s important to understand the fundamentals of coding but you also need hands-on projects that allow you to apply what you’ve learned.  The right bootcamp will allow you to develop practical skills by letting you work on real-world projects using industry standard tools. This experience will also look great on your CV and give you some quality material for your portfolio to showcase your skills to potential employers.  How is the admission process? The existence and quality of an admission process can show you the standards of a bootcamp. This process is meant to assess the skills of students and if they’re a good match for the program.  Having a “weak” admission process, or lack thereof, can be a red flag that the bootcamp: Has a lower quality of education. Might not challenge students and help them grow. Doesn’t offer students the support and guidance they need.  Isn’t very credible, meaning employers will be less likely to hire graduates of that bootcamp. A more selective process means you’ll be studying with a group of talented and motivated students, there will be more diversity, and you’ll be more likely to have better career outcomes.   What job placement assistance do they offer? One of the primary reasons for attending a coding bootcamp is to improve your chances of landing a quality job in the tech industry. So look for a course that offers job placement assistance, such as CV reviews, job search strategies, and interview preparation. You want to join a place that will help you and cares about your future. Do they have a strong alumni network? Do they offer you networking opportunities and mentoring? The right coding academy will give you the chance to work on real projects to build your professional experience and provide all the resources and support you need so you can find the job you want.  What happens once you graduate? Once you’re done with the program, how will the bootcamp support you? Or will they even stay involved or follow up with you at all?   A quality bootcamp will work to stay in touch with you after you graduate in quite a few ways but a key element is having a strong alumni community. This group of graduates is important because it's a great source of networking, it’s a place to share knowledge and help others, and it gives everyone involved a sense of belonging. Having a strong alumni community helps improve the reputation of a bootcamp, making it more credible.  After you graduate, you should also receive continued guidance from mentors and help with your job search. At arol.dev, we keep in close contact with alumni through regular check-ins, even after they’ve found jobs. We offer lifelong career guidance and support because our students aren’t clients, they’re members of our community. They can count on us if they want to improve, pursue another position, or work at a different company. We also offer our alumni the opportunity to work on real projects, thanks to our partnership with companies like Homeless Entrepreneur, which works to end homelessness by empowering people out of poverty. Not only are our graduates creating a great product and gaining valuable experience, but they are also able to make a real impact and help improve people’s lives.  Conclusion Don’t rush this process. Take your time to properly research bootcamps and academies, ask questions, talk to the people behind them and graduates, and find one that fits your needs. This is an investment in your future success and you want to make sure that you are making the right decision for yourself. If you’re looking for a high-quality, challenging program then arol.dev is the way to go. We don’t identify ourselves as a coding bootcamp but rather as a software engineering academy. We’re breaking the mold that bootcamps use. At our program we work individually with each student to increase their skills so they can progress their career in less time. It doesn’t matter if they have experience in coding or not; if they have the will to work, we’ll find the way to help them become software engineers. Book a call with one of our instructors or come join us online (or in-person) at one of our events here.