Career Development Category Archives - General Assembly Blog | Page 2

5 Steps to Getting Your First Job in Software Engineering

By

Unsure how to get a software engineering job or where to start? Landing your first job as a software engineer can seem like an intimidating milestone to reach. It feels even harder when you don’t have a computer science background and you’re transitioning from another field, especially one that you’ve worked years to develop a career in. Feelings of uncertainty come in many forms. Your inner dialog may sound like this:

“My resumé isn’t compelling enough to get a job in this new field.”
“I’m a beginner all over again, and I don’t know enough to do this well.”
“If I start over, I’m afraid I’ll fail.”
“I feel like an imposter trying to get a job in something I know so little about.”

If these are some of the thoughts you’ve had when considering a career change, you’re not alone. These are fears that most of my students have expressed in my 5 years teaching at General Assembly, and they are totally logical fears to have. Fortunately, there are clear steps you can take and definitive questions you can answer for yourself which will keep you on a path to landing a great first job in software engineering. They are:

  1. Figure out what kind of software engineering interests you.
  2. Learn the basics.
  3. Build projects.
  4. Begin applying for software engineering positions.
  5. Learn from your interviews.

1. Decide what kind of programmer you want to start out as.

You’ve decided to take the plunge into software engineering, but did you know there are many different kinds of software developers? Jobs in programming run everywhere from front-end engineering (on the design side), back-end engineering (on the server side), to security engineering, DevOps, and testing automation!

Those are some of the more common types that most companies will need to hire for, so the question isn’t, “What kind of engineer do you want to be?”, it’s “what kind of engineer do you want to start out as?” This distinction is important because you should try to work for a company that gets you going with a clear set of roles and responsibilities, but also fosters an environment that will allow you to try out other types of work too. Some of the best software developers I’ve worked with were at one point doing a completely different set of tasks at the start of their career.

So, what interests you the most?

2. Learn the basics of software development.

It goes without saying that you’ll want to acquire some knowledge in computer programming before sending out a bunch of job applications. But where to start? There are a ton of great resources out there, but I’ll outline what I think is a great approach for most people to get a good start in programming knowledge:

  1. Take some classes. Whether it’s through one of General Assembly’s coding courses, a highly rated video course on Udemy, or a coding bootcamp, it’s important to get some experience learning from an industry professional. It’s also good to be able to collaborate with other students doing a similar career change.
  2. Read a lot. The learning doesn’t stop after taking some short-form classes. After you’ve mastered the basics of programming, you’ll be able to effectively self-teach too. Get some good programming literature! Here’s a list of some great books for beginners.

You’ll want to focus your learning on the basics of programming and computer science. Key areas to educate yourself on should include:

  • Programming fundamentals: Variables, conditionals, loops, functions, etc.
  • Design patterns: How programs are structured to be maintainable and easy to reason about.
  • Popular frameworks (such as React, Angular, Express, Rails etc.) are a plus because they provide transferable skills while giving you a competitive edge by staying current. However, it’s still super important to base your education on the fundamentals of programming. A good drummer won’t learn how to play fancy fills without first learning the rudiments, and software development is no different!

3. Build, build, build!

Always have a project to work on. Apply the skills you’re learning by practicing on real-world projects. For example, if you’re reading a tutorial on how to build a user interface with React, try building your own portfolio website using React. You’ll be doing two great things for your career at the same time:

  1. Practicing and honing transferable skills.
  2. Building your software engineering portfolio with actual case studies and proofs of concept.

4. Start applying for jobs.

Software developer job openings are constantly being posted as new companies are founded, existing companies expand, and established companies evolve. When it comes to startups vs. established companies, there are some significant differences you’ll likely come across. For instance, a new startup might have more employee perks, such as flexible time off, but might also demand more weekend hours put in. On the other hand, an older established company might provide a more clearly defined set of roles and responsibilities and a better structure for employee growth.

It’s ultimately different from company to company, but the pattern I’ve seen lately is that startups provide more incentives to apply, with more initial flexibility for the employee. Keep in mind though that startups are by nature less likely to succeed long-term.

5. Use every interview as a learning experience.

You’ll start to land interviews comprised of multiple stages that will vary slightly by company but typically look something like this:

  1. Initial interview with a recruiter or hiring manager that’s usually less technical
  2. A more technical second interview with an engineer on the team, where they’ll get to know your current skill set
  3. Meeting with more members of the team which will usually include a code challenge of some sort
  4. Final interview with a company leader which hopefully includes an offer!

It’s important to remember a few things during the interview process. First of all, most modern tech companies want to hire you, not just your skills. They don’t want to just hear you rattle off a bunch of technical terms that make it sounds like you’re more experienced than you are. They want to know about you, your passions, your curiosity, your drive to learn, and your drive to grow with the company. None of those things are strictly reliant on 10+ years of experience like the job postings might say. While there is a base level of skill that is required, you’ll want the company to know that you are a good long-term fit; that you can become the software engineer that you want to be with them.

Every interview you take will be a culture fit test. Be a nice person, be curious, ask questions.

The technical part of the interview is often the scariest. During the technical interview or code challenge, sometimes you’ll have to write code by hand on a white board with people watching. It can be terrifying unless you really think about the actual purpose of the technical interview. What’s important to remember when prepping for the code challenge is that it’s designed to be hard. A well-crafted code challenge is not meant to be completed in short order. Rather, it’s meant to give the interviewer deeper insight on your current skill set as well as your ability to speak about how you navigate through a problem you’ve been tasked with solving. If you were able to finish the code challenge too easily, the company would have no idea where your skills max out at.

When engaging in a code challenge, the interviewer wants to understand your thought process for problem solving; how you might approach going from the prompt to the solution and the reasoning behind it. For a good code challenge, they want to see your journey through the problem. Of course, you do need to learn the basic fundamentals of programming to even begin a code challenge, but you’ll get to a point where you can at least show the interviewer how you’re framing the problem and coming up with a potential solution. Every interview is a learning experience.Keep these tips in mind. You’ll get better at the process, and you’ll eventually land that software engineering job where your new career will really begin!

Learn Software Engineering Online

4 Tips for Preparing for a Coding Interview

By

If you’re applying for a software engineering position of some kind, chances are you’ll encounter some sort of technical interview or coding challenge. For newer engineers applying for software programming roles, the coding interview is oftentimes the most terrifying part. However, with a few interview preparation tips and things to consider, the technical interview will seem a lot less scary, and will hopefully be a valuable learning opportunity during your job search. Let’s break down a few helpful tips:

1. Build the hard skills.

Get in the habit of regularly doing code challenges. It’s a much more effective way to prepare for the coding interview than trying to cram a bunch of studying in before the big day. It’s important to schedule time each day to attempt at least one code challenge. You’ll get better at solving them, and you’ll also get better at outlining your process and speaking to it. A few great websites to help you practice code challenges in varying degrees of difficulty include: LeetCode, Codewars, and AlgoExpert.

These code challenges help build the essential hard skills you need to technically perform well in a coding interview. If you’re applying for a mid-level position as a software engineer, you’ll want to feel pretty solid with these types of challenges in your interview preparation. If you’re gearing up for your first technical interview as a junior engineer, you’ll want at least some exposure and practice with these. 

2. Don’t forget the soft skills.

Mastery of coding challenges is only half the battle, so don’t forget the soft skills. Throughout the entire interview process, including the technical coding interview, there are a lot of things that interviewers are looking for besides your ability to code. These other skills have to do with how well you communicate, collaborate, talk about the problem at hand, your leadership skills, your drive to learn, and generally speaking, how nice you are. Soft skills are often overlooked by candidates and can be deal breakers for a lot of coding interviews.

A company that’s worth applying to will want candidates that have strong soft skills, sometimes moreso than hard skills, because they show how well a person can grow within the company and develop those hard skills over time. This is especially the case for junior software engineers.

When you practice your code challenges, see if you can buddy up with someone and take turns doing mock interviews. Practice talking through the problems as you work, asking questions, giving each other hints here and there, and revealing your ability to lead, collaborate, and persevere.

3. Acknowledge multiple solutions.

This is the “cherry on top” for an interviewer: a candidate that’s not only skilled enough to work through the problem and has a personality that fits the company culture, but can also defend their solution and mention alternative approaches. This shows that you’re not just going with what you were taught or what you read online, but that you also acknowledge that there are multiple solutions to the same problem and have considered which is most appropriate for a given context.

As an interviewer administering a coding problem, I would prefer to see the simpler solution over the best solution, as it will give me more time to talk with the candidate. Now, if that candidate can also suggest alternative approaches and defend why they selected theirs, that’s an instant win. Bravo!

An example of this might be a challenge where you’re asked to design a search function for a video streaming app. You might use an inefficient algorithm for the sake of quick implementation during the job interview, but then mention a more appropriate algorithm that would otherwise be used in real life. Speaking of algorithms…

4. Study your algorithms and data structures.

This goes hand-in-hand with the hard skills, but deserves its own section. You don’t need to be a master of computer science to ace a coding interview, but there are some standard algorithms and data structures that you should feel good about referencing, or at least mentioning and talking about. For instance:

  • How does a bubble sort work vs. a merge sort?
  • What’s the difference between a stack and a queue?
  • What’s a linked list? What about a hash table?

It’s likely that you’ll be asked any of these interview questions, so becoming familiar with and being able to speak about them to a degree is a good thing. Cracking The Code Interview by Gayle Laakmann McDowell is a great book that covers all of the essential algorithms, data structures, and how to implement and use them in sample code challenges.

The coding interview is an opportunity for you to not only show off your skills as an engineer, but also to demonstrate how well you work with others. It’s designed to simulate what it’s like to work with you on a team. So be yourself, study and practice, take a deep breath, and go crush that coding interview!


Learn Software Engineering Online

A is for Andragogy

By

Think of a great learning experience you’ve had. 

How would you describe it? You might say:

“Interactive,” “Engaging,” “Hands-on,” “Relevant,” “Practical,” “Digestible,” “Clear and easy to understand,” or “Fun!”

We’ve asked this question hundreds of times, and the answers are rarely surprising. Yet, when we ask another question, “How many of the classes you’ve taken actually fit these descriptions?” sadly, the percentage is often quite low — but not for our students. 

At GA, we’ve mastered the magic of delivering great learning experiences for each student and client. 

Interested in what this means? Read on. 

Principles of Andragogy

Andragogy is an esoteric term meaning the method or practice of teaching adult learners. If this is the first time you’re seeing the word “andragogy,” you’re not alone. 

The reason we mention this term is that we’re often asked about our “pedagogy”, in reference to our learning theory. Considering that the word most commonly used to discuss learning theory (pedagogy) has a prefix that means “relating to children” (ped) says something about the way society thinks about education. Namely, that learning is primarily for children. This has never been less true than it is today, where even successful professionals with years of post-graduate education and executive experience need to continuously upskill to keep pace with our rapidly changing world — now more than ever.

The distinction between andragogy, the adult learning methodology, and pedagogy, the children’s learning methodology, is important because while many good learning experience qualities such as engagement and interaction apply to both adults and children, there are some key contextual differences.

In both cases, excellent educators reference Bloom’s Cognitive Taxonomy to ground their courses in observable learning outcomes, and aim for active, hands-on learning with multiple opportunities to check for understanding and provide feedback along the way. 

However, we all understand that adulthood differs from childhood. As adults, we have an abundance of two things children typically have less of: choice and responsibility. 

What does this have to do with learning design? When you start thinking about taking a course or changing your career as an adult, you are plagued with different considerations than you had in grade school:

  • Is this worth my time and money? 
  • Will I be successful in learning this? 
  • What kind of people are going to be in my class? 
  • Will this be useful for my unique set of circumstances?
  • Should I just Google it? 

Designing for the Adult Learner

Six key actions tend to assuage adult learning anxieties, and help learners construct individualized meaning from a shared learning experience:

We know that adults learn best when they are active in the learning experience, when they are working toward solving a realistic, relevant, and interesting problem, and when they can show up as a whole person with individual experiences, goals, and preferences. Adults are not empty vessels… they are fully developed and experienced individuals.

So how does this knowledge impact our approach to learning? We design classes where the instructor does not just push information to the students; the instructor creates space where students can share their perspectives, be social, build connections, hear from other people, stretch their minds, and enjoy the process. 

If you’re having trouble picturing a unique GA learning experience, here is an example of what it looks like in practice: 

As a warm-up activity, we ask groups of participants to “be the search engine.” We give them printouts of five different Google search results from a previous search we conducted, such as “lunch.” We then ask them to arrange those printouts in the order they should be returned to the searcher in response to a few rapid-fire search queries, such as: 

  • “Lunch” 
  • “Best Restaurant to Take Clients” 
  • “Vegan Lunch Downtown” 

This succession of questions leads students to look at the details of the pages — their titles, contents, references to location, date published, etc. — to make and discuss these decisions. These details are factors of how search algorithms work and factors they will need to optimize for in their SEO strategies. 

The exercise illustrated above takes about ten minutes, roughly the same amount of time it would take the instructor to explain how search engines work. However, the exercise primes the students with decision-making, real-life engagement, and meaningful, useful information that can later be built upon. Most importantly, the students have not just heard the information; they have processed it — and had fun along the way.

Instructional Design in the Digital Age 

At GA, we deliver learning across two spectrums: the experience spectrum, which ranges from absolute beginners to field professionals seeking to remain current, and the duration spectrum, which ranges from 20-minute eLearning modules to 12-week, 480-hour immersive courses.

Designing a relevant and active learning experience across these spectrums is not easy, but it’s core to our proven success in digital skills education over the last nine years. Our instructional design practices are rooted in: 

  1. Modern Digital Design Practices
  2. Learning Theory and Sciences

Understanding each of these fields helps us to better utilize the other. 

Modern digital design practices include user research, design thinking, agile development, data analysis, and rapid iteration. These practices are typically core drivers of the last 30 years of technology innovation, yet too many educational institutions have been slow to embrace them. By leveraging these more modern practices into our instructional design process, we can make better use of learning theories and sciences that largely emerged in the 20th century, including the behaviorist learning theory and constructivist learning theory

For example, Nir Eyal’s book, “Hooked: How to Build Habit-Forming Products,” elaborates on a behaviorist learning theory used by UX designers and product teams to keep users coming back to their platforms. Think of that addictive social media feed, or how you can’t resist tapping an app with a big red notification bubble…

This behaviorist strategy is also well-suited for learning beginners just starting in a field, or those independently working through material on a digital learning platform. Through data analysis, we’ve seen this user need come through in myGA (eLearning) lessons via requests for “more knowledge checks,” and we’ve added them accordingly. Those frequent checks help learners gain confidence and validate their understanding, which is particularly important in the absence of a live instructor. 

As a learner “climbs” Bloom’s taxonomy into greater depths of knowledge in a field, frequent, short exercises start to become irritating, and gamification attempts can feel juvenile. We’ve seen this in students’ feedback on long-form courses where they’d prefer fewer activities. This feedback led us to consolidate those activities into select, more robust exercises. 

Meaningful, more robust exercises are examples of the constructivist learning theory, which suggests no singular “truth,” and each individual will derive a personal meaning through action and reflection. At GA, this shows up in all of our long-form courses, where in the end, students solve real-world business problems of their choice in a capstone project. 

Guiding learners to make their own meaning through project work is great when you are leading a classroom of professionals in solving a business problem using new digital skills. Still, it can leave people lost in certain scenarios, i.e., if applied in a room full of first-time programmers trying to understand what a Python loop is. That’s why both constructivism and behaviorism strategies are effective for different purposes. 

Through user research and data analysis of the thousands of learners collected over the years, we know how to deploy the right strategy at the right time, and iterate in rapid cycles based on continuous feedback from our instructors and learners. 

Bringing Everything Together

We’re passionate about delivering best-in-class education, and hope a deep dive into our approach to learning has provided some helpful insights as you explore an upskilling journey that will ensure both personal and professional growth for your teams.


Alison Kashin is the Director of Instructional Design at General Assembly.


Since 2011, General Assembly has trained individuals and teams online and on-campus through experiential education in the fields of technology, data, marketing, design, and product. Learn more about how we can transform your talent, and our solutions to upskill and reskill teams across the globe. 

Filling the Gap Between Learning & Engagement

By

The COVID-19 pandemic has led to a rapid and forced transformation of many businesses. Plans that companies previously anticipated rolling out over many years have been decided and implemented in weeks.  

Amid this rapid change where many are scrambling to adapt, leaders should ask themselves what other “five-year plans” should fastrack to keep pace with these critical business plans. One of the plans that companies should evaluate is talent development: how can businesses develop strategic plans to meet the needs of their rapidly evolving businesses?   

Creating talent development work isn’t as easy as providing online learning to employees. Our Marketing Standards board members met recently and uncovered an unexpected commonality. While all of them are making learning available to their employees, the primary area for improvement on their employee engagement surveys continues to be upskilling. This revelation brought on a layered conversation about the common challenges employers face when it comes to engaging employees in training and development — especially when these pieces of training are online. So, what’s causing the disconnect between desire and action on upskilling employees, and most importantly, what can leaders do about it?   

Understanding the Disconnect

Upskilling is urgent for employers — especially for newer professionals who aren’t going to be satisfied in their jobs if there are no learning (or advancement) opportunities. Employees don’t merely want a job; they want to work for companies they can learn from and grow within; employees wish to build careers.  

In a Deloitte survey, 90% of employees said their organizations were redesigning jobs. The World Economic Forum reported that more than half of all its employees would require reskilling or upskilling to address the digital skills gaps driven by changing job requirements over the next three years.  

For many reasons like these, our board members agree that it’s an employer’s responsibility to make learning available and an integrated part of the employee experience.  

So, what’s getting in the way of learning — from the employee perspective?  

Two big factors are time and incentive. Many employees feel like there’s not enough time during the workday to take the training accessible to them. Others don’t prioritize upskilling because although they want new and updated skills, there is no extrinsic motivator for learning them. One of the clearest opportunities for extrinsic motivation often isn’t clearly connected to training: it’s the idea that training and skills are requisite expectations for the job or performance. The right jobs motivate all of us.  

Possible Solutions

Providing employees with upskilling opportunities signals to them that they are valued and that they have a future within their workplace organization. However, offering a training program isn’t enough — the implementation of these programs must be intentional, structured, and relevant. During our conversation, board members came up with tips that can help companies foster a learning-positive workplace. These tips include:  

1. Partner With Leadership to Allocate Time During the Workday

Big roadblocks employees face: blocking time to make learning important and creating company-wide time blocks, like “No Meetings Fridays,” to provide designated time for employee upskilling. Making these time blocks company-wide is critical. If some teams aren’t participating in it, they’ll throw a meeting on the calendar that conflicts with the learning time. At that point, you’ve lost the consistent open time and original initiative purpose you’re trying to create for your team.   

2. Extrinsic Incentives: Compelling Rewards

Extrinsic incentives are tangible motivators that can encourage employees to take an upskilling training course. Offering incentives gives employees a clear prize at the end of their experience, plus an added incentive to complete learning by a particular due date. This specific incentive is a nice touch from board member Gretchen Saegh (CMO of L’Oréal USA), who plans on rewarding “the best re-scorer” of the CM1 assessment with being “CMO for the day.” These empowering incentives give employees a sense of purpose, a structured career path, and long-term vision, giving them valuable real-world experiences and advice that can be difficult to get elsewhere.  

Extrinsic Incentives: Executive Messaging on Expectations

Source: https://learning.linkedin.com/resources/workplace-learning-report

When employees see their managers endorsing upskilling, and also see the executive team pushing for the same thing, it speaks volumes about the value of upskilling within that organization and the expectations around completing tasks and initiatives surrounding it. The bottom line is that upskilling gains immediate credibility when employees see it supported by leadership. A message from the CEO and executive team is imperative when it comes to setting the tone for a company, as a message from “the top” can have a ripple effect throughout the organization.   

Getting employees to translate the desire-to-action key values of online learning is particularly pertinent as more employers look for efficient and effective ways to train their employees remotely via online training providers. It’s a new world, and there’s no magic bullet, hidden secrets, and there are certainly no shortcuts. The right online training is thoughtful and methodical: it considers human behavior, personal motivations, and leadership alignment + support to get online training to occur and resonate for employees — from entry-level positions to the C-suite.  

Finally, there’s the process of trial and error. Although initiatives often start with the strongest and best of intentions, the most successful training results adapt and fluctuate over time. No plan is flawless right out of the gate — however well-planned or well-intended.  

Learning is always a journey.

To learn more about how General Assembly can help guide your company’s talent transformation, check out our enterprise marketing solutions.

General Assembly + CUNY

By

These are unprecedented times for the world and for New York City. Many things have changed, but our goal hasn’t: We’re committed to your success and here to provide guidance toward the right jobs for you. 

Thank you for indicating interest in CUNY’s upskilling coursework in partnership with General Assembly, and congratulations on taking time to invest in yourself!

Register for the course by filling out this Google Form. An email that invites you to join the course will be sent to you within 3-5 business days.

You can get started below:

Data Analytics

GA’s online Data Analysis On Demand program is designed to get you started on the path towards becoming a stronger, analytical operator. Many industries require data skills, including product management, marketing, finance, and operations across job titles such as data analyst, business intelligence, data scientist, data engineer, and data architect. Data jobs have doubled since 2012, and salary ranges are $40–80K for data analysts and $60–120K for data scientists. 

This program will familiarize you with the key systems that allow you to make sense of data for every type of industry or job and visually express the findings to your stakeholders. It provides a comprehensive foundation to equip you with the context, process, and tools to identify and communicate data-driven insights using Excel and SQL. Students will leave the course with a business case and analysis for a client; they will learn to extract data using SQL, clean and analyze in Excel, and create the visuals and argument for their conclusions.

Learn more about Data Analytics On Demand at General Assembly.

Digital Marketing

GA’s online Digital Marketing On Demand program is designed to help you learn and implement the most in-demand digital marketing practices of the 21st century. The ability to analyze the vast amounts of data generated by digital marketing activities, and translate that analysis into digital marketing strategies and tactics, will be among the most important skills for marketers in the next decade. Digital marketing jobs have more than doubled in the last five years alone, and the average starting salary for these positions is $76,000. 

This program will teach you the foundational skills across five focus areas: customer insight, creative and content, marketing channels, analytics, and marketing technology. You’ll learn to apply core digital marketing skills like market research, search engine optimization, CRM, and automation, and launch multi-channel brand, acquisition, and retention campaigns. Whether you want to pursue a full-fledged marketing career or have a substantial grasp on marketing language and skills to support other work, this course will equip you with formal training and a portfolio to establish yourself as a competitive candidate. 

Learn more about Digital Marketing On Demand at General Assembly.

How Our Immersive Graduates Get Jobs: GA’s Outcomes Report 2018-2019

By

“The most reliable way to predict the future is to create it.”
— Abraham Lincoln

A New World

We began 2020, the new decade, in a way that none of us could have ever imagined. The COVID-19 pandemic quickly turned our world upside down, affecting millions. News of layoffs and a collective unease about the future permeates our every day. We are in an adjustment period — an opportunity to reflect, gain clarity, resolve, and find out just how strong and capable we are.

General Assembly was created in 2011, in the aftermath of the last recession, to help people pursue work they love and find inspiration in a strong community of entrepreneurs, technologists, creators, and innovators. We know so many of you are feeling uncertain, and we want you to know that we’re not going anywhere. An increasingly digital world demands digital-first skills — in greater numbers. The technology, marketing, design, and data skills we teach will be more resilient and relevant in a post-COVID-19 era. 

Our 2018–2019 Outcomes Report: the Full Story

Today, we are excited to share our latest Outcomes Report; it was just reviewed by KPMG, a Big Four* accounting firm, which looks at the graduation and job placement rates for 4,287 students completing their programs over 18 months, between January 1, 2018, and March 31, 2019.

 Here are some highlights from our recent report:

  • 91.4% of graduates who participated in GA’s full-time Career Services program accepted a job offer in their field of study within 180 days of graduating. 
  • An additional 8.3% accepted a job offer after 180 days, for a total of 99.7% of this eligible population working in their fields.
  • GA grads have gone on to work at top multi-industry companies including Amazon, Charles Schwab, Dell, Google, Home Depot, IBM, and more.

We have a diverse community of students, and our outcomes rates remain strong as we create pathways for people from a wider variety of professional backgrounds and life experiences.

We also know that the Outcomes Report only tells one part of the story: the first job that a graduate secures post-GA. To find out what happens over time, we surveyed our alumni base last year with the global polling firm Gallup and learned the following:

  • 106%: Average percentage that Immersive graduates see their income increase within five years of graduation from General Assembly.
  • One year after the course, 84% of graduates were happier in their careers, and 74% were making more money. 

Why Us?

Most students who come to General Assembly’s Immersive programs do so for one reason: to find a job in a new career. From the beginning, we established rigorous standards that ensure our graduates are meeting their career goals and getting a return on their education investment. 

You won’t be doing it alone. As Matt Brems, our Lead Data Science Instructor, shares, “It’s important to note that this time isn’t spent alone! Your peers in the industry attend meetups. Your classmates work beside you and with you to hone skills. And your instructors are dedicated to supporting you as you put your best foot forward beyond General Assembly. You are joining a community, and we’re ready to welcome you into it.” 

Our Unwavering Commitment 

Griffin Moore (they/them), one of our Career Coaches in Washington DC, shares, “Career changes are tough. Imposter syndrome or fear of the unknown can overwhelm even the most seasoned tech professionals. As a career coach, I serve as a partner in accountability, strategy, and motivation. I work with students from day one of their Immersive to develop their personal brand and job-search tools, all the way until they sign their job offer.”

Going forward, we know the job market will look different for everyone — not just our graduates. Our commitment to our students remains the same. Teaching relevant skills, preparing people for their job searches, partnering with employers, and working with students to find the best possible outcomes — we’re continuing to adapt in real-time to respond to the most current events. Here’s how we’re changing our approach:

  • Free workshops. We’re making more content and curriculum free to ensure that people seeking jobs have more opportunities to gain new skills. Free Fridays offer our most popular workshops and events for free every Friday. 
  • Remote training. We’ve trained all our career coaches in remote coaching and curriculum delivery and are updating our curriculum in real-time to make sure it reflects the current state of job seeking.
  • Deeper relationships. We’ve invested more deeply in our partnerships efforts, delivering weekly insights and engagements to our teams, conducting outreach to growing industries, and finding ways to support our hiring community during this time.
  • Reskilling partnerships. We’re training laid-off workers. We launched our first reskilling coalition in Louisville, KY, and we expect to announce many more in the coming months.
  • Strategy shifts. We’re helping our grads identify how to shift their job search processes at the moment. We’re advising them to watch industry trends, grow their community networks, build their skills, and shift expectations around weekly job search success — the application process may be slower, but we encourage an increase in online networking and expanded industry learning.
  • Increased resources. We are working with our loan partners to ease the financial burden of loan repayments, make more job search strategy sessions available to all graduates, and focus on building an online community to ensure job seekers have a more robust set of supports as they pursue professional opportunities. We’re also adding new mental health resources for students and grads through our partnership with Ginger.io

Next Steps

  1. Read the report. We’ve got personal accounts from our staff, along with hard facts and figures for you to digest — our report is the most holistic way to see what we are doing for you
  2. Talk to a member of our Admissions team. Clara Graham, Senior Admissions Producer, emphasizes that “It’s a time to get to know (a prospective student), to understand their readiness for our rigorous immersive courses.” If now is not the time, don’t worry — we have a lot of options for you. 
  3. Not sure you’re ready? Participate in a remote Free Fridays workshop to try us out! We recently created Free Fridays, 100% free weekly workshops that skill-build with our most popular topics. 
  4. There’s no better time to begin anew. Connect With Our Admissions Team

Read Our Report

Explore Our 2018–2019 Outcomes Report

*The Big Four accounting firms refer to Deloitte, PricewaterhouseCoopers (PwC), KPMG, and Ernst & Young. These firms are the four largest professional services firms in the world that provide audit and transaction advisory.

How to Find a Job—And Change Careers—During COVID-19

By

Over the years, GA’s career coaches have helped thousands of students from our full-time immersive programs land jobs with our A-list hiring partners. Now, with a transformed hiring climate, many career changers are faced with more uncertainty than ever about the likelihood of getting a new role, let alone navigating a job search remotely.

The good news is that there are reasons to be hopeful. In this recorded session, get expert advice from GA’s U.S. career coaches on how job searching has been transformed by COVID-19. Whether you’re on an active job search or curious about what the U.S. job market is like right now, you’ll gain valuable insight about how job seeking has changed and how you can stand out amongst the competition—regardless of your work experience.

See How Our Career Services Program Works

How to Run a Python Script

By

As a blooming Python developer who has just written some Python code, you’re immediately faced with the important question, “how do I run it?” Before answering that question, let’s back up a little to cover one of the fundamental elements of Python.

An Interpreted Language

Python is an interpreted programming language, meaning Python code must be run using the Python interpreter.

Traditional programming languages like C/C++ are compiled, meaning that before it can be run, the human-readable code is passed into a compiler (special program) to generate machine code – a series of bytes providing specific instructions to specific types of processors. However, Python is different. Since it’s an interpreted programming language, each line of human-readable code is passed to an interpreter that converts it to machine code at run time.

So to run Python code, all you have to do is point the interpreter at your code.

Different Versions of the Python Interpreter

It’s critical to point out that there are different versions of the Python interpreter. The major versions you’ll likely see are Python 2 and Python 3, but there are sub-versions (i.e. Python 2.7, Python 3.5, Python 3.7, etc.). Sometimes these differences are subtle. Sometimes they’re dramatically different. It’s important to always know which version is compatible with your Python code.

Run a script using the Python interpreter

To run a script, we have to point the Python interpreter at our Python code…but how do we do that? There are a few different ways, and there are some differences between how Windows and Linux/Mac do things. For these examples, we’re assuming that both Python 2.7 and Python 3.5 are installed.

Our Test Script

For our examples, we’re going to start by using this simple script called test.py.

test.py
print(“Aw yeah!”)'

How to Run a Python Script on Windows

The py Command

The default Python interpreter is referenced on Windows using the command py. Using the Command Prompt, you can use the -V option to print out the version.

Command Prompt
> py -V
Python 3.5

You can also specify the version of Python you’d like to run. For Windows, you can just provide an option like -2.7 to run version 2.7.

Command Prompt
> py -2.7 -V
Python 2.7

On Windows, the .py extension is registered to run a file with that extension using the Python interpreter. However, the version of the default Python interpreter isn’t always consistent, so it’s best to always run your scripts as explicitly as possible.

To run a script, use the py command to specify the Python interpreter followed by the name of the script you want to run with the interpreter. To avoid using the full path to your script (i.e. X:\General Assembly\test.py), make sure your Command Prompt is in the same directory as your script. For example, to run our script test.py, run the following command:

Command Prompt
> py -3.5 test.py
Aw yeah!

Using a Batch File

If you don’t want to have to remember which version to use every time you run your Python program, you can also create a batch file to specify the command. For instance, create a batch file called test.bat with the contents:

test.bat
@echo off
py -3.5 test.py

This file simply runs your py command with the desired options. It includes an optional line “@echo off” that prevents the py command from being echoed to the screen when it’s run. If you find the echo helpful, just remove that line.

Now, if you want to run your Python program test.py, all you have to do is run this batch file.

Command Prompt
> test.bat
Aw yeah!

How to Run a Python Script on Linux/Mac

The py Command

Linux/Mac references the Python interpreter using the command python. Similar to the Windows py command, you can print out the version using the -V option.

Terminal
$ python -V
Python 2.7

For Linux/Mac, specifying the version of Python is a bit more complicated than Windows because the python commands are typically a bunch of symbolic links (symlinks) or shortcuts to other commands. Typically, python is a symlink to the command python2, python2 is a symlink to a command like python2.7, and python3 is a symlink to a command like python3.5. One way to view the different python commands available to you is using the following command:

Terminal
$ ls -1 $(which python)* | egrep ‘python($|[0-9])’ | egrep -v config
/usr/bin/python
/usr/bin/python2
/usr/bin/python2.7
/usr/bin/python3
/usr/bin/python3.5

To run our script, you can use the Python interpreter command and point it to the script.

Terminal
$ python3.5 test.py
Aw yeah!

However, there’s a better way of doing this.

Using a shebang

First, we’re going to modify the script so it has an additional line at the top starting with ‘#!’ and known as a shebang (shebangs, shebangs…).

test.py
#!/usr/bin/env python3.5
print(“Aw yeah!”)

This special shebang line tells the computer how to interpret the contents of the file. If you executed the file test.py without that line, it would look for special instruction bytes and be confused when all it finds is text. With that line, the computer knows that it should run the contents of the file as Python code using the Python interpreter.

You could also replace that line with the full path to the interpreter:

#!/usr/bin/python3.5

However, different versions of Linux might install the Python interpreter in different locations, so this method can cause problems. For maximum portability, I always use the line with /usr/bin/env that looks for the python3.5 command by searching the PATH environment variable, but the choice is up to you.

Next, we’re going to set the permissions of this file to be executable with this command:

Terminal
$ chmod +x test.py

Now we can run the program using the command ./test.py!

Terminal
$ ./test.py
Aw yeah!

Pretty sweet, eh?

Run the Python Interpreter Interactively

One of the awesome things about Python is that you can run the interpreter in an interactive mode. Instead of using your py or python command pointing to a file, run it by itself, and you’ll get something that looks like this:

Command Prompt
> py
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 21:26:53) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Now you get an interactive command prompt where you can type in individual lines of Python!

Command Prompt (Python Interpreter)
>>> print(“Aw yeah!”)
Aw yeah!

What’s great about using the interpreter in interactive mode is that you can test out individual lines of Python code without writing an entire program. It also remembers what you’ve done, just like in a script, so things like functions and variables work the exact same way.

Command Prompt (Python Interpreter)
>>> x = "Still got it."
>>> print(x)
Still got it.

How to Run a Python Script from a Text Editor

Depending on your workflow, you may prefer to run your Python program directly from your text editor. Different text editors provide fancy ways of doing the same thing we’ve already done — pointing the Python interpreter at your Python code. To help you along, I’ve provided instructions on how to do this in four popular text editors.

  1. Notepad++
  2. VSCode
  3. Sublime Text
  4. Vim

1. Notepad++

Notepad++ is my favorite general purpose text editor to use on Windows. It’s also super easy to run a Python program from it.

Step 1: Press F5 to open up the Run… dialogue

Step 2: Enter the py command like you would on the command line, but instead of entering the name of your script, use the variable FULL_CURRENT_PATH like so:

py -3.5 -i "$(FULL_CURRENT_PATH)"

You’ll notice that I’ve also included a -i option to our py command to “inspect interactively after running the script”. All that means is it leaves the command prompt open after it’s finished, so instead of printing “Aw yeah!” and then immediately quitting, you get to see the Python program’s output.

Step 3: Click Run

2. VSCode

VSCode is a Windows text editor designed specifically to work with code, and I’ve recently become a big fan of it. Running a Python program from VSCode is a bit complicated to set it up, but once you’ve done that, it works quite nicely.

Step 1: Go to the Extensions section by clicking this symbol or pressing CTRL+SHIFT+X.

Step 2: Search and install the extensions named Python and Code Runner, then restart VSCode.

Step 3: Right click in the text area and click the Run Code option or press CTRL+ALT+N to run the code.

Note: Depending on how you installed Python, you might run into an error here that says ‘python’ is not recognized as an internal or external command. By default, Python only installs the py command, but VSCode is quite intent on using the python command which is not currently in your PATH. Don’t worry, we can easily fix that.

Step 3.1: Locate your Python installation binary or download another copy from www.python.org/downloads. Run it, then select Modify.

Step 3.2: Click next without modifying anything until you get to the Advanced Options, then check the box next to Add Python to environment variables. Then click Install, and let it do its thing.

Step 3.3: Go back to VSCode and try again. Hopefully, it should now look a bit more like this:

3. Sublime Text

Sublime Text is a popular text editor to use on Mac, and setting it up to run a Python program is super simple.

Step 1: In the menu, go to Tools → Build System and select Python.

Step 2: Press command +b or in the menu, go to Tools → Build.

4. Vim

Vim is my text editor of choice when it comes to developing on Linux/Mac, and it can also be used to easily run a Python program.

Step 1: Enter the command :w !python3 and hit enter.

Step 2: Profit.

Now that you can successfully run your Python code, you’re well on your way to speaking parseltongue!

– – – – –

Explore Our Upcoming Coding Programs

5 Principles For Teaching Adult Learners

By

adult learners in a classroom image

The motivations to learn evolve as you become older; and for an adult educator, teaching can be even more difficult without a basic understanding of adult learning theory.

Continue reading

What is EdTech and Why Should It Matter to You?

By

Educational Technology image

Education Technology (also known as “EdTech”) refers to an area of technology devoted to the development and application of tools (including software, hardware, and processes) intended to promote education.

Put another way, “EdTech is a study and ethical practice for facilitating learning and improving performance by creating, using and managing appropriate technological processes and resources.”

Continue reading