The Abstraction of Parameters

This article on the abstraction of parameters is part of the Content Collective series, featuring tips and expertise from Flatiron School staff members on topics ranging from program success to the job search. This series is a glimpse of the expertise you can access during your program at Flatiron School.

While programming, you may want to have the same thing happen more than once but at separate times in the code. You can copy and paste the code from the first instance, but then you have repeating code throughout your project.  

While a practical solution, doing this adds many lines of code for you or others to parse through to find a bug should one occur. 

To help minimize code size, stick to DRY (Don’t Repeat Yourself) code.  Using functions with parameters and arguments allow you to reuse that same code over and over without adding all the lines of code each time.

What is a parameter?

A parameter is kind of like a variable that belongs to a specific function. Just like a declared function waits to be invoked or used somewhere in the code, the parameter waits to be given a value. It just sits there in the function until it is utilized and given a value.  

When declaring a function you must also declare the parameter that is attached to it.  To declare the parameter all you need to do is give it a name in the parentheses of the function you have declared. The syntax looks something like this in JavaScript:

function myExample(myParameter){

return myParameter

}

When giving a parameter a name you can name it anything you want to (as long as it doesn’t repeat the name of another variable or function in the same scope). However, it is helpful to others reading your code (and as a reminder to yourself) if you give the parameter a name that represents the value it is given. 

For instance, if you have a function that converts Fahrenheit to Celsius, then the value you want the function to change will always be the Fahrenheit temperature. So, calling the parameter “Fahrenheit” would be ideal.

function convertToCelcius(fahrenheit){

return (fahrenheit – 32) * 5 / 9

}

In this case, the parameter called Fahrenheit will always represent the temperature to be converted to Celcius when the convertToCelcius function is invoked and given an argument.

What is an argument?

Functions exist in two states. 

The first state is the declaration, or architecture of code that will happen when the function is used. 

The second state is the invocation of the function. This is the signal that the code in the declaration of the function should go through its coded steps. The parameter exists in the declaration version of the function and the argument exists in the invocation of the function. The argument is the value that is given to the function and, thus, assigned to the parameter of the function. 

In the previous example, the argument would be provided for that function similarly to this:

convertToCelcius(78)

This signifies to the code that the steps in the previous function example should go through its steps with the parameter (in this case called Fahrenheit) equal to 78. So, when you invoke the function like this, the code for that one time the function performs its steps is essentially the same as this: 

return (78 – 32) * 5 / 9

Notice that the parameter was replaced by the argument that was given to the invocation of the function. That’s because the parameter is essentially a stand-in for the argument that is passed in. This is what makes the function dynamic and reusable with different values.  

How Are Parameters and Arguments Linked?

The parameter of a function is like a container that can hold different things in it. Let’s say you have a favorite glass that you like to drink out of for every meal. On that glass, there is a label of ‘drink’. For breakfast, you have eggs and toast and your ‘drink’ glass you fill with orange juice. After breakfast, the ‘drink’ glass is empty so you can use it again for lunch (after rinsing of course). For lunch, you have a ham sandwich and fill your ‘drink’ glass with milk. Afterward, it is empty again and can be used for dinner and so on.

For each meal, the glass stays the same and always has the label ‘drink’. What changes is what the glass holds. If the meals represented a function, ‘drink’ would be a parameter in that function. Whatever it is filled with represents the argument for each meal (or the invocation of the meal function).

In Conclusion

Using parameters and arguments in your function allows you to reuse the code in the function for different purposes. This will keep your code sleek and minimize the lines you must trace back to find bugs in the code. It also shows employers that you can develop dynamic code for use in multiple places in an application.

About Joe Milius

Joe Miius is a Software Engineering Technical Coach at Flatiron School. He has previous teaching experience and has been helping Flatiron School students understand coding concepts for 2 years. He loves problem-solving and takes on each new problem or question a student presents with vigor and curiosity.

Jon Brundage Jr.: TV Production to Software Engineering

Jon Brundage Jr., a June 2021 Software Engineering graduate from Flatiron School, rethought his initial career choice during the COVID pandemic.

He shares his journey from TV Production to Software Engineering below.

Pre-Pandemic Career Path

Jon Brundage Jr. began his career with a degree in Media Studies and spent more than a decade in the field. But, like many others in the media, the 2020 pandemic threw a wrench in his plans. 

“I came from a twelve-year career in freelance television production working as a director of photography and camera operator,” Jon said when we interviewed him earlier this year. “When the pandemic hit, I had a lot of downtime to reassess what I was contributing to the world.”

While the world stood still, Jon used his time to take a tally of his current occupation. Through that contemplation, he came to the conclusion that it was time to pivot paths.

“[TV] Production is fun, but it is very physically demanding and requires a lot of time on the road. My wife was also pregnant with our son, and I knew I did not want to be a parent who was always away,” he explained. “So, between wanting to be more meaningful and intentional with my career and wanting more balance between life and work, I decided to make a change.”

Pivoting To Tech

Having decided to make a switch, Jon quickly settled on Software Engineering, citing the field’s versatility and demand. 

“I knew that software engineering would open a lot of doors to explore my next role,” he said.
“There are so many different types of companies and organizations that [need Software Engineers] and I was very attracted to the idea that my skills could be transferable to a wide swath of industries and employers.”

But, as a husband and soon-to-be father, Jon didn’t want to take the traditional 4-year degree route. To get to his goals faster, he started looking into bootcamps. 

“I asked some friends and family who worked in tech where I should go. Flatiron School [was mentioned by] my best friend who has been a software engineer for years, as well as my brother who is an accomplished graphic designer,” he said. “After some initial research, I knew it was the right choice for me to have a solid foundation to start a new career.”

Bootcamp Experience

Jon enrolled in Flatiron School’s Software Engineering Live program in March 2021, an accelerated, intensive course. Students in the program study full-time – 8 hours a day, Monday to Friday – for 15 weeks. Learning new Software Engineering skills at the break-neck pace, Jon said, was difficult to adjust to at first.  

“The most challenging part of the program was the gear switching,” he explained. “You spend two weeks learning something new, practice and test on it for another week, and then start all over. By the third phase I was used to it, but it’s overwhelming for the first few weeks.” 

What pulled Jon through the beginning difficulties of the course was the phase one instructor that helped him adapt to the material. 

“My favorite part of the program was my phase one instructor, who completely laid the foundation for my success in the program,” he said. “[He] explained this new world of Javascript in a way that was very accessible and had so much patience for all of my questions. He took this very big, intimidating process and gave me the tools to feel empowered from day one and I will be forever grateful for all his tutorage.”

Job Search

Jon graduated from Flatiron School in June 2021 and jumped straight into the job search, focusing primarily on making connections.  

“I put a lot of energy into networking. I asked friends and friends of friends if they knew any Software Engineers and if they’d have time to chat over coffee or Zoom,” he recalled. “I’ve always thought face-to-face networking is the biggest bang for your buck in job hunting, to this day.”

His original perception of Software Engineering being an in-demand skillset ultimately turned out to be true when a recruiter reached out to him with an opportunity. 

“I was extremely lucky in my job hunt. My current company actually found me and, after a few interviews, they brought me on as a part-time contractor. After a few months, I became full-time staff.”

Working In The Field

When we spoke with Jon in June 2023, he’d been working as a Creative Technologist at Schema Design for just under two years. His experience working in the field, he said, has been overwhelmingly positive. 

“I am thoroughly enjoying my new career. I work for a design firm and my role is fairly client-facing, which has a good amount of overlap of soft skills from my previous career,” he said. “My projects and stacks change every few weeks or months, so I’ve gotten my hands on a ton of technologies in the last year and a half. I’m learning new skills every day and constantly asking myself ‘How can I do this better?’.”

His position has also allowed him to expand his development skillset – building on the foundation he developed while at Flatiron School. 

“My company specializes in data visualizations so from the start of my job, I’ve learned some really cool frameworks and libraries. I’ve built sites in React, Vue, and Svelte, and some pretty cool interactive experiences with d3 and Three.js. [I rebuilt] the company website from scratch a few months back in NUXT3, which I find to be an amazing framework. It offers universal rendering so you get the flexibility of single-page applications, while also the performance and SEO of a static site. You can check it out at SchemaDesign.com.”

Reflecting On His Journey

Looking back on where he began three years ago, Jon emphasizes the importance of believing that you can actually make a change. 

“My biggest takeaway from Flatiron School was that I am capable of learning new tricks. I’d been in my former career for over a decade and worried that I wouldn’t be able to adapt to a new setting,” he recalled. “It took a while to believe in myself and get over impostor syndrome, but eventually, you do eventually feel like a real Software Engineer.”

His advice for current and future Software Engineering students is to lean into the uncomfortable nature of change. 

“Learn to be comfortable with not knowing. So much of software engineering is getting a problem or task you haven’t solved before and figuring out how to tackle it. Be confident in your ability to learn new skills, and know that this feeling of not knowing exactly what you’re doing means you’re on the right track. It isn’t forever and you will see tangible growth in even a few months from where you’re at right now.”

Ready For A Change, Just Like Jon Brundage Jr.?

Apply Now to join other career changers like Jon Brundage Jr. in a program that sets you apart from the competition. 

Not ready to apply? Try out our Free Software Engineering Prep. Or, review the Software Engineering Course Syllabus that will set you up for success and can help launch you into a new and fulfilling career.Read more stories about successful career changes on the Flatiron School blog.

Version Control With GitHub: A Guide

This article on version control with GitHub is part of the Content Collective series, featuring tips and expertise from Flatiron School staff members on topics ranging from program success to the job search. This series is a glimpse of the expertise you can access during your program at Flatiron School.

Have you ever been working on a project and gotten to a point where you wanted to rewind? Perhaps start over from a previous point and go in a different direction? Hitting undo until you get there would work, but then you’d lose all the work that you had. Wouldn’t it be nice if you could go back but still keep all your work? Well … there is for coding!

What is Version Control?

Version control is a system to keep track of each change that is made to the code in a project. 

Many systems can be used for version control. In the Flatiron School Software Engineering program the focus is on using Git and GitHub. Git is the most widely used version control system and is used in conjunction with GitHub. 

Git commands run locally to track each version and change made to a project on your computer. GitHub stores all those changes so that other people can review the changes.

Why Is Version Control Important?

The importance of version control is not just to show you know a new technology but also to show you can manage larger projects in an organized way.

Using version control will be crucial because you will have many people collaborating on the same project and keeping track of all the different code coming into the project in an organized way is essential. It will allow your managers to review your code before integrating it and it will allow your contributors to apply your code to theirs. 

Showing employers that you can organize your code and be able to compartmentalize code into workable sections that can be integrated or reverted will show them that you have the foundations to work in a collaborative environment.

Git Basics

While completing the labs in the Flatiron School Software Engineering program you will become automatic in the basics of Git version control. 

Each submission will be prefixed with git add . , git commit -m “Completed”, git push. These are very good commands to get used to using, and even better to understand what is happening with each command. 

The git add . command takes note of every file that has been changed in the directory and puts them into the staging area. Take note that the period at the end of the command is what signifies ‘all’ the changed files. 

The git commit -m “Completed” command takes those staged files and designates them to be tracked by an identifier.  This allows each newly committed version to be reviewed or reverted back to.  Then, finally, the git push command sends the committed files to the software holding each version, in Flatiron School’s case it is GitHub.

Beyond the Basics

Once you’ve got the basics, it’s helpful to familiarize yourself with additional commands. The deeper Git knowledge you have, the more applicable you’ll be in larger projects with multiple contributors. 

There are several commands you will want to explore to get a greater sense of compartmentalization in Git. They are git branch, git checkout, git merge, and git pull. These commands will help you store commits into a specific section of a project that you are working on.

Git Branch and Git Checkout

There are two ways to use the git branch. The first is to bring up a list of branches that are associated with the project you are working on. The second way includes an argument after the command and creates a new branch that can be worked on. 

For instance, the command git branch new-branch will create a new branch of the project called new-branch.  You can then start working in that branch with the command git checkout. Git checkout also requires an argument to move into whichever branch you want to work on. 

An example of this would be git checkout new-branch. This command would have you working in the branch created by the command git branch new-branch. This will compartmentalize all the code you are working on for a particular feature of an application or website. 

If you have multiple contributors to the project, then the other contributors can review the code before applying it to the main branch of the project. It also allows you to revert the project to a previous state if the new code creates an error. This is extremely helpful when a project has been deployed and you want to integrate a new feature. If the new feature breaks the application, you can return to the main branch to the commit before the integration.

Git Merge and Git Pull

If you are working on a branch of the project that does not have the most updated code of the project you are not going to know if your code will conflict with the updated code. This is where git merge and git pull help. They allow users to see how new code interacts with previous code and how the new code can be integrated with the deployed branch of the project.

To integrate the new code into the project’s main branch, you will want to ensure you are currently in the main branch.  You can check this by running the command git branch. This will give you a list of branches and the one with a * next to it will be the branch you are currently on.  When at the main branch you can take all the new code from another branch. Then, incorporate it into the main branch with the command git merge new-branch.  The argument that the git merge command takes is the name of the branch you want to integrate with the current branch you are on.

In the case that another contributor merged code on the repository stored on Git Hub and you do not have that code in your local directory, then you want to use the command git pull.  This command will take all the code that another contributor added to the repository and integrate it into the branch that you are currently working on.

Final Thoughts

The practice of version control in Git will help you prepare for a professional role. It also will allow an easier transition into the workflow of the position you land. Even in your professional experience, it would benefit you to take the git commands mentioned here and expand on the multitude of git actions that you have access to (https://git-scm.com/docs).  This will help keep your team’s code organized and manageable.  It will also make it much easier to find bugs and fix them.  Being more efficient in your process is a benefit to everyone.

About Joe Milius

Joe Miius is a Software Engineering Technical Coach at Flatiron School. He has previous teaching experience and has been helping Flatiron School students understand coding concepts for 2 years. He loves problem-solving and takes on each new problem or questions a student presents with vigor and curiosity.

Data Science vs. Software Engineering: Industry Trends and Future Predictions

The road to the future isn’t paved with asphalt—it’s a path defined by ones and zeros. For centuries, infrastructure was in the hands of physical labor engineers. Today, it’s the masters of data science and software engineers who will move today’s societies into the next stage of technological advances.

In this piece, we’ll examine industry trends in data science vs. software engineering, forecast the direction of both fields, and consider how they’ll impact each other in the future.

Industry Trends in Data Science

Hiring Growth

The industry is actively seeking data scientists. Estimates show data science employment is expected to grow by a staggering 36% from 2021 to 2031. The future is in the hands of skilled data analysts, data engineers, and data architects who can use data analysis to extract valuable, actionable insights.

Gathering Big Data

Projections suggest more than 150 billion devices will be generating 175 zettabytes of data by 2025. Much data will be generated and analyzed in real-time, providing almost-instant feedback for improved results (think content recommendation systems).

These mountains of captured data will drive company decisions, strategies, and future projections. People who can design complex new analytical models and then train machine learning systems on those models will be invaluable.

Analyzing TinyML and Small Data for Data-Driven Devices

The Internet of Things (IoT) has ramped up the need for data scientists who work with TinyML and small data. IoT devices are being developed for nearly every industry, calling for experts to gather and implement that data.

Smart homes. Smart transit. Entire smart cities. All of these call for small, low-powered devices that compute their ML and datasets. These TinyML devices require the expertise of data scientists to collect and analyze billions of data points. They’re then stored in the cloud, streaming new command instructions for these smart devices to act upon in real time.

This is where data science meets the true cutting edge of the future of data-driven devices.

Using AutoML

Analyzing monumental amounts of data collected from databases, platforms, and devices calls for integrating metrics using Automatic Machine Learning (AutoML). 

Data scientists will rely on automated tasks to gather accurate data streams. Likewise, industries will need their expertise to define what tasks are suitable for ML and to train ML on their information models to improve accuracy.

Industry Trends in Software Engineering

High Growth

Like data science, software engineering will likely see extremely fast growth. The industry is expected to grow 25% from 2021 to 2031.

For over a decade, businesses have relied more heavily on digital solutions to traditional scaling challenges. From digital platforms to app development in emerging fields like AI and ML, software engineers are in high demand to build the future.

Utilization of Agile Methodology and DevOps

Software development teams have significantly benefited from advances in Agile Methodology and DevOps programming and share centralized datasets while developing quickly and efficiently. 

Teams consistently share daily progress in small sections of completed applications, later joined to build a final product. Redundant processes like testing for errors and security issues are automated.

Agile and DevOps will trend upwards together as both continue to benefit from increased usage and advances in AI and ML.

Cloud-Based Platform Development

The reliance on cloud computing will increase. Centralized data repositories shared by development teams, massive amounts of storage, and an added layer of security will help businesses scale at cost.

AI and ML Automation

While the AI and ML fields are currently experiencing an explosion of public interest, they’ve been trending for many years. From every sector, automating processes reliably while using ML to train systems for specific tasks to increase accuracy is critical. The roles of AI and ML in Agile and DevOps are expected to continue driving innovations in development.

Advances in Cybersecurity

Cyber threats are rising exponentially. In 2022, there was an average of 1,168 weekly cyberattacks—a 38% rise compared to 2021. Paired with a proportionate increase in complexity and sophistication, companies both large and small are seeking news ways to secure their systems against the onslaught. 

There will continuously high demand for Software Engineering skills in Cybersecurity to keep systems and information secure.

Mobile App Development

The more we rely on smartphones for our daily needs, the greater the need for mobile-friendly app development and support systems. Whether it’s for companies needing to develop AI-based customer support, for apps using gamification to help people in personal development, or even for GPS-based beacon technology, there’s never been a greater need for mobile-first software development.

The Intersection of Data Science vs. Software Engineering: How the Two Fields Will Impact Each Other

It’s easy to think of these two fields as separate entities – as data science vs. software engineering. But, as multiple revolutionary technologies grow exponentially, we’ll see the intersection of technology fueled by advances in both fields—data science and software engineering. 

Increasingly sophisticated software tools will integrate cutting-edge AI and ML, requiring new skill sets from data scientists and software engineers alike. 

Software engineers will draw from massive repositories to streamline and optimize code development. 

Data privacy and the ethics surrounding intellectual property will call on advanced data analytics. At the same time, combining 5G, IoT, and advances in AR and VR will transform every industry.

Data scientists and software engineers will play fundamental roles in shaping the future of banks, hospitals, customer service, and ethical data mining. At the same time, new fields will be emerging, creating demand for roles that don’t exist yet.

Advances in AI and ML

With new applications developed every day that tap into the power of neural networks and large language models, the world will need analysts and other data experts. Data analysts will formulate how to use millions of new data points. Meanwhile, software engineers will experience increased demand to help companies accelerate data use to gain an edge over competitors.

Programs designed to help the user automate tasks will require the expertise of data scientists and programmers to integrate AI and ML upgrades to features. Companies based on a digital platform model will need constant new integrations for greater datasets from users and features to help the user make smarter, faster purchases using advanced predictive models.

Advances in IoT

IoT is going to change the way we look at the world. Every device, appliance, and gadget will operate on analytics designed by today’s data scientists, with code optimized for even the simplest systems. At scale, everything from traffic patterns on our roads to railways and airport runways will require complex models that other machines will read and interpret. 

Cities will rely on well-crafted information systems and dynamic analytics to manage electricity use, waste management, hospital equipment, and other systems. The potential use cases are virtually endless.

Advances in AR and VR

Along with powerful CPUs and other advances, we’ll probably see accelerated movement into practical applications for AR and VR. They’ll factor into production tools, virtual work environments, live events, and virtual game environments — supporting and enhancing experiences in reality. This technology means coding opportunities galore, but it also means opportunities to collect unique new user data.

Advances in 5G

5G does for internet bandwidth what AI is doing for intelligent computing. This technology will open doors for front end developers to design radically upgraded visuals for desktop and mobile.

New predictive models will transform the market in ways we have yet to imagine. Improvement in computing data means collecting real-time information on users and their connections to one another.

Join the Technology Revolution in Data Science and Software Engineering

If you’re considering a future in data science or software engineering, get a taste of what Flatiron School offers: download a syllabus and try your hand at our free lessons.

Or, you may be looking to hire the best talent. If so, learn how we help businesses with our hire-to-retire dream team recruitment services and multiple technology training solutions.

How to Become a Software Engineer Without a Degree

Pursuing a traditional 4-year degree in computer science has long been the traditional career path for software engineers. But today, many software engineers are finding alternative paths to their careers. In fact, according to a 2022 survey, only 41.32% of software developers have a bachelor’s degree. 

With the evolving tech landscape, software engineering has become one of the most rapidly growing fields. There are more computer games, web and mobile apps, network control systems, and operating systems being developed than ever before, and they aren’t going anywhere anytime soon. 

As industry opportunities expand, so do the pathways to this lucrative career. Here’s how to become a software engineer without a degree, including the necessary skills you need to acquire and tips to help pick the right route for you.

What we cover here:

What Skills Do Software Engineers Need?

Software engineers need computer programming, coding, object-oriented design, and software development skills. Other life and social skills such as problems solving, logical thinking, and great communication can help you get a leg up in the software engineering field as well.

These required skills can be learned quickly, especially if you exhibit the 7 signs you could be a successful software engineer. Here are the key skills you will need for this career:

Essential Tech Skills

  • Programming Languages: Proficiency in languages such as Java, Python, Ruby, C++, or JavaScript are crucial for designing and implementing software solutions. 
  • Software Testing: Knowledge of basic and advanced debugging and testing techniques is required, even in the age of AI testing. 
  • Software Development: Engineers familiar with the ins and outs of developing software have a more solid understanding of the structures behind software performance.
  • Object-Oriented Design (OOD): Essentially, this approach involves defining, understanding, constructing, and identifying the objects of a system.

Other Skills

  • Problem-solving: The ability to analyze complex problems and break them into manageable components is crucial for software engineering.
  • Communication: Excellent written and verbal communication skills can help engineers articulate ideas and job requirements to coworkers and clients.
  • Teamwork: Many aspects of the career require collaboration, especially on larger projects that involve the efforts of a team.

But how does one go about acquiring the skills needed to become a software engineer, especially if you don’t have 4 years to go back and earn a traditional degree?

How Do You Become a Software Engineer Without Earning a College Degree?

To become a software engineer without a degree, pursue self-study and alternative professional development (such as online courses, workshops, learning platforms, and bootcamps) to learn the necessary skills and knowledge needed to enter the field. Doing so helps you to gain practical experience while building a comprehensive foundation for a career in software engineering.

Important Courses for a Software Engineer

A well-rounded curriculum should include foundational programming and specialized courses that include theoretical concepts and practical applications. This varies but may include:

  • Computer/Software Science
  • Data Structures and Algorithms
  • Object-Oriented Programming
  • Front End Development
  • Back End Development
  • Artificial and Machine Learning

Ultimately, the best programs should send you off with a final portfolio that demonstrates your high-level, ready-to-work knowledge, skills, and experience.

Pros and Cons of Earning a Degree, Self-Learning, and Software Engineering Bootcamp

There are several pathways to becoming a Software Engineer, with pros and cons for each avenue. Here’s an overview.

Earning a Traditional 4-Year Degree

Pros:

  1. Comprehensive education
  2. Clear credibility 
  3. In-depth, diverse knowledge
  4. Built-in networking opportunities

Cons:

  1. Time-consuming 
  2. Often prohibitively expensive
  3. Less focus on practical skills
  4. Little real-world experience 
  5. Curriculum may not address new technologies

Self-Learning

Pros:

  1.  Learn at your own pace
  2. Cost-effective, especially compared to 4-year tuition
  3. Ability to tailor learning to interests
  4. Source learning materials from open-source contributors

Cons:

  1. May lack a well-rounded structure
  2. Potential gaps in knowledge without guidance
  3. Must be incredibly dedicated, committed, and self-motivated

Software Engineering Bootcamp

Pros:

  1. Accelerated pace to gain skills quickly
  2. Emphasis on practical, real-world skills and application
  3. Networking and career support
  4. Guided learning and accountability structure
  5. Less expensive than a traditional 4-year degree program
  6. Flexibility to complete software engineering courses online
  7. Up-to-date curriculum addresses new and evolving technologies

Cons:

  1. Financial investment 
  2. Time commitment to complete coursework

Flatiron’s Software Engineering Course

College courses can be beneficial, but there are quicker ways to make it from beginner to a high-paying career in software engineering. That’s where Flatiron’s Software Engineering course comes in. 

Our bootcamp teaches you the skills needed to become a successful software engineer, with courses that cover everything from design to maintenance. In as little as 15 weeks, you can learn everything you need to know to break into the industry and land your first job. Download the Software Engineering Syllabus to see the skills you’ll learn. 

Need some flexibility as you complete the course? Both part- and full-time course schedules are available, with online and in-person campuses that fit your schedule and availability.

Apply to Jumpstart Your Software Engineering Career

Whether you’re a budding full stack developer or completely inexperienced, our Software Engineering program will take you from beginner to industry-ready in as little as 15 weeks.

Apply to Flatiron School today and get started toward a fulfilling career in tech.

Tyson Mills: Firefighter to Software Engineer

Tyson Mills, a September 2022 Software Engineering graduate from Flatiron School, spent more than a decade chasing adrenaline as a firefighter. Now, he puts his quick-thinking and problem-solving skills to work as a Software Engineer.

He shares his journey from fighting fires to writing code below.

Background

As a child, Tyson Mills remembers being drawn to exciting, high-speed activities like sports and motorcycle racing. This adrenaline-seeking tendency, paired with a strong desire to work on a team and help others, initially drew him to a career in firefighting. 

“I served with the City of Forest Park, GA Fire Department for almost ten years, where I rose to the rank of Sergeant. During that time I met my wife, and we moved several times before finally settling in Athens, GA. I spent three years with the Athens-Clarke County Fire Department and rose to Corporal.” 

But, when his wife’s career offered them an opportunity they couldn’t refuse, Tyson left firefighting behind to “spearhead” the family’s move in a different direction. 

“While looking back on my time as a firefighter brings back fond memories of the incredible people I worked with, I knew it was time for a new challenge,” he recalled. “I left firefighting behind to support my family, pursue new opportunities, and make a positive impact in a new way.”

Pivoting Into Tech

While strategizing his next career move, Tyson doubled down on something he’d dabbled in on the side for years – Software Engineering. 

“I’ve always been fascinated by science and technology. Even as a firefighter, I took online coding courses on sites like freecodecamp, Codecademy, and Udemy and did web development on my days off to earn some extra ‘walking around money,’ as my mom used to say.” 

Tyson said that what he’d enjoyed most about working as a firefighter was the inherent unpredictability of arriving at an ongoing event and having to problem-solve quickly. Software engineering, he said, requires the same quick-thinking ability. 

“[With software engineering] you get immediate feedback. You write some code, and you can instantly see whether it works. The component either renders or doesn’t. You can make minor tweaks and adjustments, and suddenly, everything falls into place. That feeling of success, that ‘boom,’ is what I’m always chasing. Solving problems and seeing the results of my work makes software engineering rewarding for me.”

Deciding On Flatiron School

Having settled on pursuing a tech career, Tyson started researching avenues to acquire the skills he’d need to enter the field. 

“I recognized that I needed formal training to hone my skills and build a solid foundation,” he explained. “After looking into numerous schools and programs, I decided to apply to Flatiron School’s Software Engineering program in July 2021.”

As for why he selected Flatiron School, Tyson reported having two main reasons. The first was the program’s flexibility for students to attend part-time and online. 

“[Flatiron School] recorded lectures, which was critical for me as I was still working as a firefighter,” he said. “Unlike other schools that required in-person attendance, Flatiron’s recorded lectures allowed me to watch them independently and fit my studies around my work schedule.” 

Tyson’s second reason for applying was the school’s reputation. 

“Flatiron’s great reviews […] were a major selling point. I was eager to learn as much as possible and gain the skills and knowledge necessary to successfully transition into a new software engineering career. Flatiron School provided the perfect platform for me to do so.”

Bootcamp Experience

Tyson enrolled in Flatiron School’s online, part-time Software Engineering Flex program. The program combined the flexibility he needed to continue working with a structured curriculum to teach material efficiently and keep him moving forward in his learning.

“The course was broken down into clear phases and modules. This streamlined approach was a refreshing change from the scattered and disorganized process I was employing while trying to learn independently,” he said. “With Flatiron’s well-planned curriculum and access to valuable materials, I quickly absorbed the information and built my skills as a software engineer. It was a great feeling to see my progress and know that I was learning and growing every day.”

Despite the structure provided by the course, Tyson admitted it still took him time to adapt to online learning. 

“My biggest challenge was [not having] the traditional classroom experience. While I had access to various resources, such as office hours and the supportive Slack community, it was different from being in a physical classroom with the opportunity to raise your hand and ask a question in real-time.”

But, by pulling on his problem-solving skills, he persevered and learned to take advantage of the resources available to him. 

“The program helped me become incredibly resourceful and self-sufficient, which are essential skills in software engineering. I learned to seek out answers and find solutions independently, which has proven invaluable. Overall, Flatiron’s program pushed me to become a more independent learner, which has helped me to succeed in my career.”

Working In Tech

Tyson graduated from Flatiron School in September 2022, first working as a Freelance Web Developer and later accepting a full-time role as an Enterprise Software Developer at Mississippi State University. The reality of working in the field, he said, has been a positive experience. 

“Working as a software engineer has been a dream come true. I love constantly learning and growing, and I find the work incredibly rewarding. Every day, I apply my problem-solving skills and creativity to real-world challenges. I’m constantly discovering new and exciting ways to push the boundaries of what’s possible. I’m grateful for the opportunity to work in such a dynamic and fast-paced industry, and I’m excited to see where this career will take me.”

To see some of Tyson’s work, check out his portfolio site at TMillsDev.

Reflecting On His Journey

Looking back on where he began, Tyson’s main takeaway is the importance of hard work and persistence when it comes to pursuing additional education – especially if it’s online and self-paced. 

“If you have the drive and determination, you can learn anything. The program was intensive, but I learned that it’s okay not to know everything immediately and that it’s essential to keep pushing yourself to learn more daily.”

As for Tyson’s advice for current and future Flatiron School Software Engineering students, it’s to stay the course, even when things get hard. 

“When the material seems daunting or overwhelming, break it into small, manageable chunks, and keep working at it daily. Don’t be afraid to ask for help when you need it, whether from instructors or your peers in the program. And remember that there’s no such thing as a stupid question – if you’re struggling with something, chances are someone else is too.”

He also advises them to expect to fail, and to lean into the experience. 

“Failing is part of the process. The only way to learn is to keep making mistakes and fail upwards. If you’re not failing, you’re not growing or learning from your mistakes. Don’t be afraid to fail. That’s the easy part.”

Ready For A Change, Just Like Tyson Mills?

Apply Now to join other career changers like Tyson Mills in a program that sets you apart from the competition. 

Not ready to apply? Try out our Free Software Engineering Prep. Or, review the Software Engineering Course Syllabus that will set you up for success and can help launch you into a new and fulfilling career.

Read more stories about successful career changes on the Flatiron School blog.

Is JavaScript Hard to Learn? Everything to Know About the Most Popular Programming Language

It’s an often asked question, is Javascript hard to learn, mainly because JavaScript has developed a reputation of being difficult. However, it’s not nearly as complicated as you might think.

What is JavaScript and what does it do?

Ten years ago, the answer to this question would have been much simpler. JavaScript started as a way of bringing us out of the basic HTML dark ages of the early 1990s. Netscape engineer Brendan Eich realized that the web needed a core programming language capable of performing calculations. That idea eventually led to the creation of JavaScript. 

Today, JavaScript is no longer just a client-side scripting language. It’s used to create more interactive web content and is the foundation for a variety of frameworks. You can now use JavaScript for server-side development the same as you would C# or Python. Many developers also use JavaScript in native application development and machine learning processes. 

It’s also used as a big part of front-end web development, almost always in tandem with HTML & CSS. Where HTML is the backbone of the website, and CSS is its styling, JavaScript puts the finishing touches on web pages, making them interactive and a joy to use.

In fact, because of its versatility, JavaScript is one of if not the single most important programming languages to learn. Essentially, there’s not much you can’t do these days when it comes to JavaScript.  

what does javascript do

Is JavaScript worth learning in 2023?

It’s hard to think of a language more valuable in 2023, and beyond, than JavaScript. You can find some form of JavaScript in 98% of all websites. The advertising widgets and other interactive elements that appear on website pages are all likely built with JavaScript.

Learning JavaScript means getting an education on all things programming. You’ll learn about different aspects of object-oriented programming. And, once you know JavaScript, you’ll be eligible for a lot of full-stack developer positions, opening your world to a host of in-demand jobs in tech. 

Most popular browsers like Chrome and Internet Explorer provide tools that let you work with and evaluate JavaScript code. That means there’s no complex setup required. You launch your browser, navigate to the Developer tools, and start coding.

JavaScript should be one of the languages you learn while you progress as a developer. It’s also a good stepping stone to object-oriented concepts if you’re coming over from a functional programming language like C and are looking to expand your knowledge base.

Why Should I Learn JavaScript?

JavaScript is a highly versatile language that’s user-friendly for beginners, despite what you might have heard. You’ll find a large community of JavaScript developers online willing to offer advice and help you when you get stuck on a specific coding problem.

Web developers can create an entire front and backend application using only JavaScript. Once you master JavaScript, you’ll find yourself capable of working with JavaScript frameworks like Vue, React, and Angular.

Your JavaScript knowledge can also help you speed up backend processes. For example, you can use JavaScript Object Notation (JSON) files to transfer data back and forth. Once you get more experienced, you can install Node.JS and build your servers. There are numerous JavaScript libraries available that help you build templates you can reuse for development purposes.

You can leverage your JavaScript in areas other than web development. Libraries like Tensorflow.js, built by Google, provide you with a framework for creating machine learning models to use in a browser. That gives you the ability to build and deploy your ML models inside client-side applications. In addition to creating unique models, you can work with existing ML models and retrain them to use for other purposes.

jobs you can get with javascript

Learning JavaScript puts you in a position to forge a career in fields like:

The flexibility of the JavaScript language is one reason why it continues to explode in popularity. You’ll find that JavaScript experts are in high demand in many different industries. Many organizations need developers with JavaScript skills, who will be tasked to create new business applications or enhance the functionality of existing ones.

Is JavaScript Hard to Learn?

JavaScript is easy to learn if you take it one step at a time. Don’t get caught up in trying to learn every framework ASAP. Remember, JavaScript is more than just a language. It’s a toolset you can utilize in different ways.

Focus on the basics of JavaScript

The simplest way to start learning JavaScript is to focus on the basics. Before you go picking up an item you may not know how to leverage properly, master the fundamentals. This makes it easier to learn as you move on and absorb more complex JavaScript topics.

If this is your first time with any programming language, it can take you some time to grasp concepts like syntax and programming style. You’ll likely have an easier time with JavaScript if you already have experience with another programming language.

Getting started

Again, all you need to start learning and applying JavaScript is a web browser. While you can start using some of the functionality right away, it’s going to take time to learn the intricacies of the language. You may be tempted to blast through the fundamentals and get to the “good” stuff. If you do that, you could find yourself struggling when you can’t remember something simple to get your complex application running.

Thankfully, there are a lot of online JavaScript resources available. The sheer volume of help available can get overwhelming. Try sticking to a few at first like Stack Overflow, which offers advice from fellow developers.

Or, if you want a little more structure, try this free learn JavaScript course.  

What are the fundamentals of JavaScript?

Below are just a few of the concepts you’ll need to grasp to truly become proficient at JavaScript. One reason some people find JavaScript difficult is because you must learn these concepts as a beginner.

Once you do, you’ll reap the benefit as you’ll come across these basics again and again as you build more powerful JavaScript applications.

fundamentals of javascript

1. Structuring code

Every programming language has its specific syntax. JavaScript consists of a series of statements typically ended with a semicolon. While it’s not necessary to end with a semicolon, many developers find it makes the code easier to read.

It’s also a good idea to add comments throughout your code using either a double backslash (//) or enclosing a statement in the following way:

/** This is a block of commented JavaScript Code. You use it when you want to comment out multiple lines of code or add a large comment block. Start a statement with a backslash and star symbol, then add a single star symbol and slash to conclude the statement. */

Adding comments helps other developers understand the thought process that went into different code sections. You can also use comments to mark out sections of code that you want to render non-functional without deleting them entirely.

2. Variables

Variables function as memory placeholders for information used within your program. For example: If you wanted to create a place to store a person’s name, you could declare a variable with the statement let firstName = “Fred”, then use the firstName variable throughout your program.

3. Data Types

data types in js

JavaScript uses two basic types of data, primitive and objects. JavaScript is what is called a loosely typed language. For example, other languages like C# ask you to define numbers in a specific way by using syntax like decimal newCost = 25.00 or int value = 5. JavaScript only requires the use of the let or var keyword, then automatically determines the variable type.

For example, JavaScript interprets a declaration like let fruit = ‘orange’ to be a string of letters because you enclosed the word orange in quotes. If you declared let count = 5, JavaScript would understand that the variable count is meant to hold the number 5.

4. Alert, prompt, and confirm

Alerts, prompts, and confirms allow you to either provide messages to the user or take in information. For example, you can use the statement alert(“Hello there”) to send a greeting to someone when they take an action like clicking a button or hovering over a link.

Prompts allow you to pass information to the user and ask for a response that allows the program to proceed. Confirms ask the user if they agree or disagree with a specific action before proceeding.

5. Conditionals

You’ll find that conditionals form the backbone of many beginning JavaScript programs. Conditionals evaluate the status of a code condition and take specific actions based on what it finds. For example: If you write code asking if a variable named fruit is equal to “banana”, and that is the string of letters it holds, you can send an alert to the screen stating “The fruit is a banana.”

6. Loops

Loops are a more complex conditional that repeats an action if the condition of a JavaScript statement meets specific criteria. It only stops running once the condition is no longer valid.

7. Functions

Functions are where you start building more complicated pieces of a JavaScript program. You’ll find functions in every library, framework, and application written using JavaScript. An alert is an example of a function.

8. Making HTTP requests with RESTful JSON

Hypertext Transfer Protocol (HTTP) is the protocol used to structure requests and responses sent between a client and server. It’s how the internet pulls up internet pages when you enter an address. Representational state transfer (REST) works on top of HTTP to make it more powerful. 

Using REST with JSON helps it provide more support to client browsers. You’ll find RESTful JSON takes up less bandwidth and integrates easier into websites.   

What’s beyond the basics of Javascript?

Once you feel like you have a solid handle on fundamental JavaScript, start learning about different frameworks like React and Angular.  The easiest way to describe a JavaScript framework is libraries of pre-written code that provide you with a skeleton from which you can start your development.

Frameworks set you up with the basics that take care of the more repetitive coding requirements. That helps you get started more quickly on the more complicated aspects of your application.

A lot of developers see frameworks as a way of bypassing the need to learn the core JavaScript language. If you don’t understand the language, you’ll never have a solid understanding of your framework, which limits how much you can accomplish. 

Below is a brief overview of some of the more popular JavaScript frameworks.

React

React is less of a framework and more of a library that contains components that allow you to quickly build fast, interactive user interfaces for web and mobile applications. The open-source front-end library was created by a Facebook engineer. Applications like Instagram were built entirely with React components.

If you understand JavaScript and basic HTML, you’ll experience a quick learning curve when getting into React — which is why it’s the most popular framework on the market.

Angular

Angular is a true JavaScript framework built by Google back in 2012. The idea behind Angular was to break apart the dependencies that often exist between application logic and manipulating elements within the DOM. That allowed for more dynamic page updates without being too intrusive.

The biggest difference between Angular and React is that you can build an entire application with Angular, while React is geared more toward creating web components

Vue.js

Vue.js is a full JavaScript framework used to build user interfaces and single-page applications (SPAs). It’s even easier to learn than React, which accounts for its growing popularity. You can get started relatively quickly with Vue if you have a solid HTML, CSS, and JavaScript foundation. Some feel that it combines the best features of React and Angular.

‌What’s the easiest part of learning JavaScript?

While JavaScript isn’t necessarily as difficult to learn as you may have heard, it may take some time to get up to speed. The easiest aspect of learning JavaScript is finding online resources. There are tons of online courses available that teach you the basics of JavaScript programming. You can also find courses that dive into working with specific frameworks.

How to learn JavaScript: Where do I get started?

Here are some available resources to get you started on your JavaScript educational journey. You can find some free beginner courses online, such as:

Immersive Learning: Lost in Coding

This article on immersive learning is part of the Content Collective series, featuring tips and expertise from Flatiron School staff members on topics ranging from program success to the job search. This series is a glimpse of the expertise you can access during your program at Flatiron School.

Starting the Flatiron Software Engineering program can feel a lot like traveling abroad. 

At your first Flatiron School class, you’ve finished the program’s prework and maybe even done some online lessons. You might be feeling prepared and eager, as well as a little nervous, with the feeling of entering a fantastic new adventure. 

This is not dissimilar to how it would feel to travel to Spain, for example. Maybe you learned a few basic words or sentences before heading to the airport. You’d likely be getting off the plane excited to experience a new culture, surroundings, and language. 

What’s more, the learning path for picking up Spanish abroad and coding at an accelerated bootcamp are also very similar. How can this be? One word: immersion.

WEEK 1: Fumbling With Fundamentals

The excitement that led you to take that international flight or sign up for a coding bootcamp will likely carry you through the initial week of learning. Those first few days, all you’ll be able to do is take in all the information cascading over you. You’ll find yourself lost in the culture of code and the language of Javascript. With everything new, including much of the language, you will most likely find yourself completely overloaded with information.  

“You can access the information in the object through bracket notation or dot notation. Bracket notation will allow you to use the value of a variable rather than the literal characters typed to access the key. Dot notation is limited to the literal characters typed as the key”

“Uh, I heard variable and object!”

It’s similar to being surrounded by people fluent in Spanish while only knowing a few nouns. You can pick out some familiar words and concepts from the work you did before the program, but little else. Combining all the pieces of Javascript in a coherent sentence or workable code ends up being like trying to string together a limited Spanish vocabulary into something as simplistic as “me gusta la manzana”.  Though to native ears of Javascript, it may seem childish, it is a big accomplishment to be able to say something like “The variable has been reassigned”, and that is a great start!

The Challenge

You will be inundated with so much information you might be consumed with taking it all in rather than just parsing the important parts. It can be intimidating and make you feel you won’t be able to accomplish the end goal. Don’t let this imposter syndrome shape you into a bystander in your learning.  Taking a passive approach will prevent you from achieving fluency in Javascript, much like only listening to Spanish speakers won’t teach you to respond proficiently.

Tips For Success

Be active in the learning process! To get yourself used to applying code to a blank file you should set up your replit and follow along with the lessons in the curriculum.  When you are done with a lesson try changing the code in your REPL environment and try to predict what will show up in the console. This will help you get more comfortable with producing and thinking in code.

WEEK 2: Practicing In Pairs

In the second week, pairing with other cohort mates to work on different labs and being forced to take the role of initiator will make you think through and cohesively use Javascript. The two roles – driver and navigator –  of this paired programming approach are instrumental in being able to produce code rather, than just understand it.  

Much like starting to use basic Spanish phrases in conversation, this week will challenge you to create things on the spot and respond appropriately to your partner.

The Challenge

Week two labs are an active Javascript thought production that makes you think through the language. The navigator role compels you to verbalize what code should be typed out. You will have to think through how to make a fetch request, what to do with the information from the fetch request, and how it all works with the user through event listeners. In each step, you will break the code down into smaller steps and debug.

Tips For Success

Moving into the “use phase” of week two can be intimidating. Take it slow and try not to stress during pair exercises. If you stumble over the logic, the driver is there to help you.

WEEK 3: Conversing In Code

As the end of Phase 1 of the Flatiron program nears, your fluency with the language will have grown to the point you can code independently. At this point, you can take on the challenge of tackling the end-of-phase labs that put all the concepts you have learned together.  

This translation will be taking someone else’s words and turning them into code. From now on it will feel like each new piece of information fits into an existing framework. Even new languages and frameworks in the next phases will feel easier to pick up. 

Relating back to our Spanish analogy, this is the point where you no longer feel lost on an alien planet. You know the fundamentals, can hold a dialogue, and partake in normal conversation! Though there will be new words to learn, you now understand how to fit them into the language. 

The Challenge

The end-of-phase labs will likely take a lot of time. At first, completing one of the comprehensive labs might take you a full day of work. But, with each successive lab you engage in, the time it takes to complete will diminish.

Tips For Success

Focus on taking the end-of-phase labs one step at a time. Fully engross yourself in one lab at a time. Move on to the next only when you’ve completely finished the first. By the time you’ve completed a few of the labs, it will begin feeling like coding has “clicked”. You’ll be able to see how everything fits together and would be translated from the “deliverables”, or the description of what the code should do for the user.

After Flatiron School’s Immersive Learning Bootcamp

Flatiron School will immerse you in coding, and your job is to let yourself be lost. Lean into the learning curve, engage, and try to converse. While immersion is scary at first, it gets results. If you embrace the process, you will learn new skills faster than you ever imagined!

About Joe Milius

Joe Miius is a Software Engineering Technical Coach at Flatiron School. He has previous teaching experience and has been helping Flatiron School students understand coding concepts for 2 years. He loves problem-solving and takes on each new problem or question a student presents with vigor and curiousity.

Naftali Kulik: Rabbi to Software Engineer

Naftali Kulik, a September 2022 Software Engineering graduate from Flatiron School, spent nearly a decade pursuing Rabbinic Studies before transitioning to tech.

He shares his journey from Rabbi to Software Engineer below. 

A Foundation In Faith

Naftali Kulik began his career pursuing Rabbinic Studies. While he spent nearly a decade in the effort, he never intended to make a lifelong profession out of it. 

“A long-term career in the field was never really part of the plan,” Naftali said. “I always knew I’d eventually transition [to something else].”

After spending some time researching different career options, Naftali settled on the field of Software Engineering. 

“In my mind, the ideal career would be the chance to do something that a) I enjoy doing, b) I am good at, and c) will enable me to comfortably support my family. The more I learned about Software Engineering, the more I felt it had the potential to check all three boxes.”

But, as a busy father of two, he knew he didn’t have the time or financial resources available to take off years and go back to school for a traditional 4-year degree. 

“What originally drew me to a tech bootcamp was the possibility of making a quick career change,” he explained. “I chose a bootcamp over college because of the ability to acquire a valuable skill in a fraction of the time it’d take to earn a college degree, and for cheaper.” 

As for why he chose Flatiron School specifically in an industry with lots of options, Naftali said that he wanted “the best”.

“[Flatiron School] is one of the most respected bootcamps in the industry, and I wanted the best for myself. Attending a bootcamp with the combination of a quality curriculum, good career coaching, and a sterling reputation felt like the best way to set myself up for success.”

His Coding Bootcamp Experience

Naftali enrolled in Flatiron School’s Software Engineering Flex (or part-time) program in April 2022. The online-only, self-paced format of the course allowed the busy father of two the flexibility he needed to make a career change. But, like many students new to tech, he found adapting to the material and an engineer’s mindset difficult at first. 

“The beginning of the program [was challenging], before I learned how to think like a developer,” he recalled. “But as coding became more instinctive and intuitive, it got easier and easier even though the material was getting more advanced.”

As Naftali adapted to and progressed through the program’s material, he found that he particularly appreciated the projects he worked on.

“I enjoyed watching everything I’d learn come together to produce real results (which would suitably impress my non-technical friends and family of course!),” he recalled. ”Working on projects allowed me to push my limits and helped me solidify my understanding of the languages and technologies I was working with.”

The Job Search

Naftali graduated from his Flatiron School Software Engineering program on September 13, 2022, and jumped right into the job search. The experience, he said, was turbulent. 

“[It] was exhausting, at times discouraging, and thankfully relatively short!”

Despite the rough seas, his Flatiron School career coach guided him throughout his job search journey.

“My career coach helped me stay the course and not let short-term discouragement get in the way of my long-term goals. He gave me the confidence to trust my instincts and was always there when I had questions or was unsure how to proceed.”

In December 2022, Naftali ultimately accepted a role as a Software Developer at 100 Boulevard Management. 

Working In Tech

When we followed up with Naftali in January 2023, he’d only been at his first tech job for a week. Despite being brand new to both the company and the industry, he felt well-prepared to succeed. 

“I feel like my skills are up to par with what’s expected, though I’ll still need training on the particulars of the project I’m working on.” 

As for how his previous religious career fits into his new path, Naftali said that the two fields have more in common than meets the eye.

“Studying Talmud is an exercise in closely analyzing information so as not to miss a single detail, and applying critical thinking skills to resolve disputes and inconsistencies,” he explained. “These skills were useful when learning how to code, as I am already trained to identify small but important details and to apply my knowledge creatively to solve problems.”

Reflecting On His Journey

Looking back on where he started, Naftali is sure that he made the right decision. 

“My biggest takeaway is that I chose the right profession! I enjoyed the program and discovered a natural talent for coding. Everything I learned only reinforced my conviction that Software Engineering was the right career path for me.”

As for his advice to others currently in a Flatiron School program, he recommended taking the opportunity to practice as much as they can. 

“You can absorb all the information you can, but the only way to truly internalize it is to put it to use. When working on projects, push your limits (within reason of course) and incorporate as much of what you’ve learned as possible. The projects (and to a lesser extent, the labs) are your opportunity to go from ‘someone who knows some stuff about coding’ to a true programmer.”

And about the job search? Naftali advised taking a macro look at the experience, instead of floundering in the inevitable micro disappointments. 

“Play the long game. A good job hunt strategy requires patience to let your efforts bear fruit, and a lack of short-term success doesn’t reflect on the overall progress toward the eventual goal of getting a job. Just keep building relationships and making yourself as hireable as possible and you’ll get there eventually.”

Ready For A Change, Just Like Naftali Kulik?

Apply Now to join other career changers like Naftali in a program that sets you apart from the competition. 

Not ready to apply? Try out our Free Software Engineering Prep. Or, review the Software Engineering Course Syllabus that will set you up for success and can help launch you into a new and fulfilling career.

Read more stories about successful career changes on the Flatiron School blog.

Tyler Luckewicz: Amazon Career Choice 2021

Tyler Luckewicz, an October 2021 graduate of the Amazon Career Choice Software Engineering program, began in the business side of tech before pivoting into a hands-on role.

He shares his journey to Software Engineering below.

Beginning In Business IT

Tyler graduated from Virginia Tech in 2015 with a degree in Business IT. He cited an early interest in tech as the reason he chose the program.

“I played video games from a young age. The idea of learning how to code and creating a game always appealed to me,” he said. “While in school I took some programming classes and enjoyed them. It was intimidating and complex yet at the same time incredibly satisfying when a concept clicked and you could get a program to do what you wanted.”

Despite his interest in technology driving his initial career path choice, Tyler did not enjoy his first post-university job. 

“I was working as a Business Analyst for KPMG. But I felt like I was not adding much value,” he explained. “I was mainly focused on documentation but worked closely with software developers who I saw as building real things of value that others would see and use.”

Pursuing A Tech Path

After realizing that he wanted to do something different with his career, Tyler quit his Business Analyst role and went to work for Amazon as a Warehouse Associate. 

“I eventually moved into a role in the IT department at Amazon. I enjoyed this new job and the skills I needed to learn. It was a step in the right direction but I still felt there was another path I wanted to pursue.”

Tyler didn’t have to look far for that next path. In fact, he’d wanted to pursue it all along. 

“Software Engineering was always in the back of my mind [but] I knew I had to acquire more hard skills,” he said. “I figured if I was going to put in a lot of extra time to study and learn, it might as well be towards something I was more passionate about.”

Applying To Amazon Career Choice

After deciding to pursue Software Engineering, Tyler began to self-study using online resources. Then one day, he spotted a flier on the outside of his workplace’s building. 

“It was for the Amazon Career Choice program which would pay for employees to pursue a career in a new field,” he recalled. “One of the partnerships highlighted was with Flatiron School for Software Engineering.”

Tyler looked into the curriculum Flatiron School taught and felt like it was the logical next step for him.

“It was everything that I was currently learning plus so much more,” he said. “Being a completely self-taught developer is possible but this seemed like just the thing I needed to push me to the next level and give me the confidence that I could break into this field and write code professionally.”

His Program Experience

Tyler was accepted into the Amazon Career Choice program and matriculated with a cohort of fellow students from Amazon. The program ran for 32 weeks from February through October with the curriculum delivered online via live lectures. Students completed about 15 hours a week of classwork while continuing to work full-time. 

“The level of commitment required [was challenging]. Every single week required a huge amount of time and effort,” Tyler remembered. “You could not afford to take time off. The nature of the material we were learning meant that if you fell behind it was very difficult to catch up. It was so worth it but anyone thinking about joining the course needs to be ready for a big commitment.”

Despite the pressure of learning Software Engineering at an accelerated pace while continuing to work, Tyler found the course’s structure and his cohort’s camaraderie refreshing. 

“Studying programming on my own was isolating, trying to figure out all the different technologies and how they worked together,” he said. “Having an organized structure, with a class of peers all going through the same thing, and instructors there to guide us and answer questions was an amazing experience.”

When comparing his time in the Amazon Career Choice program to his efforts in teaching himself the material, for Tyler there is no comparison. 

“[It]was on another level that really pushed me and got me so much further along. I truly believe that no one could gain the same amount of experience and put in the same amount of effort by studying on their own. You can learn on your own but it will not compete [with this program]!”

First Job In Tech

Tyler graduated from the Amazon Career Choice Software Engineering program in October 2021 after completing 480 curriculum hours. While most of his classmates jumped into the job search at that point, Tyler was in a unique position – he’d already accepted a job offer. 

“I had kept in touch with a friend from college who worked as a Software Developer,” he explained. “I told him about what I was learning and working on. He said it would be great if an opportunity came up and I could work with him and his team. It ended up working out and I was offered a job with his company before I finished the program.”

When we talked with him in April 2023, Tyler was still in the role, working as a Software Engineer at the pharmaceutical consulting company IQVIA. 

“I love my new career. I still can’t believe that I actually get to solve problems and write code for a living. I’m currently working on an application that tracks lab results for patients who are participating in clinical trials to help develop new drugs.” 

As for whether the dream lives up to reality and the journey was worth the destination? Tyler’s answer is a resounding yes. 

“I still pinch myself sometimes when I am solving a problem or writing code and think to myself ‘this is what I get paid to do now’! It’s an incredible feeling and one of the most rewarding accomplishments of my life.”

Reflecting On The Journey

Looking back at where he began, Tyler emphasizes the value of committing to the path you want to be on.

“It is amazing what you can accomplish when you fully commit and jump into something 100%.”

He’s also become an advocate for others looking to break into tech to pursue an accelerated bootcamp program, like the one he participated in.

“To anyone who has an interest in becoming a Software Engineer and does not want to go to school for four years to get a degree, there is absolutely no better way to break into the industry than going through this program. It will push you further than you could ever go on your own and will build the experience and confidence that you can do this at the professional level.”

As for his advice to other students, his advice is to prioritize planning your time.

“This is a demanding program but building a routine of when you do your work is critical to success. If you give this your full attention you will be amazed at what you have learned and accomplished when you come out the other side. It will literally change the rest of your life.”

Flatiron School Retraining Programs

Amazon’s Career Choice offers eligible Amazon employees the opportunity to pivot careers into higher-paying jobs through retraining. The program was created as a way to attract top talent as well as improve employee engagement and retention. 

Following the initial cohort’s success, Amazon again selected Flatiron School to deliver Career Choice programs in 2023.