There’s a fine line between good and bad software, and that could be a single line of code.
To an aspiring software engineer, this might seem like a welcome invitation to simply pick a language, watch countless YouTube tutorials on coding, memorize them by heart, and apply for an engineering role. To a trained professional, however, there’s a lot more work that goes into learning how to write a proper code.
The Art of Learning Software Engineering
Software engineering is a process of logical discovery and thoughtful exploration. At least that’s the idea. For many beginners, however, the exploration stops with memorizing code.
“Memorization is a terrible way to learn software engineering,” said William Vincent. A teaching assistant for coding bootcamp App Academy, William harped on the dangers of taking this approach to learning the field.
“There’s no possible way it’s going to happen,” he said. Indeed, since William started teaching at App Academy, he found that the most common downfall of many software engineers is their inability to think critically or communicate their thoughts. It’s a problem he strongly attributes to rote memorization, which he says requires no real thinking.
“Most software engineering courses online, especially those that are pre-recorded, are just going to be tutorials,” said William. “So you end up mostly following how they write code line by line. And rote memorization, while not useless, has its place.” That place, he said, is nowhere near the goal of learning how to build software solutions for real-world problems.
“The biggest thing about software engineering is that it’s all about creation,” continued William.
“You take something. Then through creative, logical thought, and individual steps, you produce software behavior. If the way you’re learning is completely abstracted from that, such that you’re only repeating steps that someone told you to do, I don’t see that being very helpful in terms of learning how to code.”
“You might learn how to code one thing but not necessarily how to code.” Put simply, knowledge memorized is not half as useful as knowledge understood.
This is not to discount the successes of self-taught software engineers. Admittedly, learning in silo through online coding courses and tutorials may work for some. Nonetheless, caution must be observed by programmers who only ever spend their time working on their own and learning the tools of the trade without understanding the trade itself.
So, what is the right way to learn software engineering?
How Does App Academy Teach Software Engineering?
It takes a community to produce great software engineers. Right from the onset, App Academy connects you with a learning network that will guide and support you throughout your App Academy learning journey.
Four main pillars make up your App Academy learning network: the technical instructor, the teaching assistant, your career coach, and your peers or classmates. Each of them plays a part in building your software engineering toolkit and preparing you for the workforce.
The App Academy Instructor
The technical instructor serves as your first and primary source of academic guidance at App Academy. Because of this, experienced software engineers who have a solid understanding of the field, as well as significant experience in teaching or people managing make up App Academy’s body of instructors.
Whether you’re taking App Academy’s Full-Time Online Software Engineering Immersive, its Full-Time In-Person Software Engineering Immersive or its upcoming Part-Time Online Program, your day at App Academy will always start with a lecture led by the technical instructor.
Every lecture is followed by a live Q&A session. These sessions are designed to create space for meaningful conversation between App Academy students and the instructor regarding the course material. Students are invited to engage with the material, interrogate further, express their thoughts, and take charge of their learning.
This is a stark departure from the traditional learning experience where knowledge is so often passively received by students. Supporting the App Academy instructors are the teaching assistants.
The App Academy Teaching Assistant
App Academy’s teaching assistants are top App Academy graduates who recently went through the school’s software engineering program. As such, “they do a good job of connecting with students,” said former App Academy student Christ Atwood.
“The way it works is you’re assigned to a TA at the beginning [of the program]. You may end up only working with that person [throughout the program] or you can get rotated through other TAs,” he said.
“We have a circle of students that we watch over and make sure are doing okay,” added William. “Project-building usually follows the lectures. So, that’s when we answer questions or drop into Zoom breakout rooms and help the students understand the code they’re working on.”
While the technical instructor acts as the main point of academic guidance, the teaching assistant serves as the glue of the classroom—assisting the instructor to create an environment conducive for learning and closely guiding the students to ensure maximum comprehension.
“App Academy is always growing the way it approaches [learning],” said William. “For example, we have assessments every Monday. If you fail, you go back and repeat the module.” The assessments, he said, are meant to determine whether the student has a baseline understanding of the week’s material.
“It’s not a bad thing to defer. Deferring or repeating the material does a lot for your understanding. It’s expected, really, with the amount of material you’re learning,” said William, adding that he likewise went through the process during his time as an App Academy student.
“I deferred at one point after I failed a test. It did wonders for my learning process. The next time I took the test, I finished it in 25 minutes because I knew the material that much better.”
Apart from taking weekly assessments, students also turn in daily reports that explain how well they understood the day’s course material. “We get those on a daily basis and read them every morning,” said William. It’s the job of the TA, he added, to track whether a student is struggling with the course material and identify ways to fill in the knowledge gaps.
“The key,” said William, “is having that willingness to understand where [the students] are at mentally and then tailoring how we explain something to their current understanding…[It’s in] giving a good explanation that is appropriate to their level of learning.”
“Some students need very little to push them in the right direction. And we’re not really giving them the best [guidance] if we give them more than that. We have other students who may be struggling with the material, and they’re going to need a lot more [support]. So, it’s different for every student. But it’s really just about taking the time to care about where they are.”
“Maybe that day, they’re having a rough day or maybe they’re feeling really good. Either way, we don’t want to over-teach or under-teach,” said William.
Your App Academy Classmates
Any breakthrough in software is always a joint effort. In the words of senior software engineer Bernard Meisler, “Coding is not a solitary pursuit. It’s a team sport where we reuse other people’s code.”
Code gets worked on by multiple people in its lifetime. This means that to become a software engineer, you’ll also need to be a good team player and communicator.
App Academy instills these values by giving students a lot of exposure to pair programming. By ‘a lot’, we mean daily. Every day, you will pair up with one of your classmates and work on a project designed to further your understanding of the day’s course material.
This is followed by the group reviews where you share how you approached the day’s project and gain insights as to how your peers worked on theirs. Both activities are designed to strengthen your technical communication and interpersonal skills.
They’re also meant to humble you by opening your mind to other software engineering strategies and showing you that there’s more than one way—apart from yours—to approach a given problem.
Your App Academy Career Coach
The support you get from App Academy does not end the moment you get your certificate. After completing the program, you’ll work closely with a career coach who will walk you through the job search process and help you find a software engineering position. Depending on your needs, you may be assigned to a behavioral or a technical career coach.
App Academy’s career coaches do more than the classic “let’s-buff-up-your-resume” approach. “We offer ongoing encouragement, mentoring, and technical support to polish technical and interview skills. We also refine career goals and job search strategies for job seekers,” said App Academy technical career coach Michael Norton.
The importance of having job search support cannot be overstated, especially amid the pandemic where competition has become stiffer than before. It can be even more stressful if you’re a career changer. With a career coach, you’ll receive straightforward guidance on how you can best proceed with the job search more smartly and productively.
“Searching for a job, whether in this industry or another, is not necessarily the most enjoyable experience. It’s just not the most fun,” said Michael. “Eventually though, our goal as career coaches is to try and make it more enjoyable and more of a fun experience for everyone.”
“Additionally, we want to make it as short an experience as humanly possible,” he added.
“To that note, I can say that the first quarter of this year [2021] was actually one of the best quarters that we’ve ever had in terms of job placements. It was absolutely fantastic, and so we’re still kind of riding that wave now into Quarter 2. Fingers crossed that everything holds up and things look bright. But, in general, it’s a fantastic time right now to get into coding.”
Key Takeaway
The moment you enter the App Academy classroom, the coding bootcamp ensures that you gain a critical grasp of what it means and takes to become a software engineer. From all four corners of the room—with your instructor, teaching assistant, classmates, and career coach—you’re sure to find support every step of the way.
What’s the App Academy Experience Like?
“I get this question a lot and I struggle with how I should answer it,” said Chris, who finished the program in 2018. “I can say that App Academy isn’t built to be enjoyed. It’s built to upload as much information into your brain as possible [during the program]. It pushes people on the edge of the red line, where some are going to fall and those who don’t will thrive.”
“So, if you ask me if it was fun, then not really. But if you ask me if I think attending App Academy was a good decision, then absolutely…The curriculum was fast-paced and difficult enough that you probably could go through it on your own for over a year if you were a really tenacious person. Maybe.”
“But I think the frustration and the roadblocks would hinder and demotivate you if you weren’t totally dedicated,” said Chris, adding that App Academy’s support system helped him navigate the stresses and strains that came with understanding the field.
“App Academy does a very good job of teaching people how to learn in general and how to learn software. In terms of the exact technology or processes [that I learned], a lot of things have of course changed over the past few years.”
“But the main skill you learn at App Academy is learning how to learn rather than learning specific frameworks,” added Chris.
Three years since he completed his training at the coding bootcamp, Chris is now a Software Engineering Manager for the cyber security firm, Synack.
Lessons of the Day for the Aspiring App Academy Student
“You Can’t Learn Everything on Your Own”
“Problem-solving is one of the most critical soft and technical skills that you can build,” said William. “If you can take some deductive or logic courses, that will do more on your ability to code and your ability in life than a lot of other things.”
“If we’re talking about the more coding-specific skills that you should hone, learn how to research and just how to write a good Google search. Learn how to find what you’re looking for on the Internet because you’re going to do a lot of that, and the amount of time you’ll spend doing that will be drastically reduced if you get good at finding things using search engines.”
“You can’t memorize everything. There is no possible way for you to learn everything on your own.”
“Learn Git”
“Git is something you should practice with before you get into App Academy,” advised William. “The number of students who had a lot of problems with learning Git and getting used to using Git in their workflow is pretty high. The more familiar you are with that, the better off you’re going to be.”
“Develop Your Soft Skills”
“I cannot stress the importance of the soft skills enough,” said Michael. “Being able to communicate, understand your fellow employees, and be in the moment are vital to your career as a software engineer.”
“The days of the ‘rockstar [software engineers]’ are over. It’s all about the team now.”
Learn Software Engineering with App Academy
“If you’re doing a web development camp, you can learn a bunch of different tech stacks or you can learn one thing really well,” said Michael. “I think [the latter] is something that App Academy does well.”
“You learn so much just from osmosis. You exist in this world that is just ‘code, code, code’ for months. And you’re surrounded by people who also exist in that world. With the live lectures, pair programming, App Academy gives an environment that’s highly conducive to learning.”
Want to learn software engineering with App Academy? Explore the coding bootcamp’s software engineering programs, sign up with App Academy, and get to know your learning network.
About us: Career Karma is a platform designed to help job seekers find, research, and connect with job training programs to advance their careers. Learn about the CK publication.