GCA Sprint Prep:
What is the GCA?
The GCA is a proctored assessment that provides a certified report you can use when applying for jobs. It is a standardized assessment that provides a high-level score for a candidate's programming skill. It maps programming skills to a score from 300 to 850, combining information about problem-solving and code-writing skills and speed and code quality. It is a measure meant to give recruiters, hiring managers, and educators – as well as the test-takers themselves – a quick view of the test-taker’s skills. Taking the assessment will be a data point that informs how career-ready you are and how you can continue to improve during Labs and Job Search. One key way that hiring managers are assessing new hires during remote work is with automated technical assessment testing, like GCA. This is why we will continue to evaluate how our students perform on these types of tests.
How do I take the test?
Be sure to take the test using the link above, and sign up with your @lambdastudents (Links to an external site.) e-mail. You must also select to share your results with Lambda so we can get your score back.
You will also need the following to take the test:
Grab your photo ID. Have a government-issued photo ID ready to show (like driver's license or passport).
Prepare your computer. Make sure you have the following: Chrome or Firefox, a reliable internet connection, webcam and microphone.
Time and space. Reserve 1 hour and 10 minutes to take the test somewhere quiet.
Share your webcam and desktop. When prompted, share your entire desktop screen as well as your webcam. Do not end video or close any windows or screensharing until the test is finished.
Again, you must take the test with your @lambdastudents (Links to an external site.) email address! This may require you to sign out of CodeSignal if you previously created an account and sign in with your @lambdastudents (Links to an external site.) email.
What is on the test?
Each test draws from a pool of question types. There are four tasks for you to solve. Each test contains a very basic task, a simple data manipulation task, an implementation task (requires writing at least 25-40 lines of code, but the description clearly explains what needs to be done), and a problem-solving task (where you need to come up with the approach yourself).
How long does it take?
The GCA test is limited to 1 hour and 10 minutes, starting from the time you begin the test.
Can I retake the GCA?
You can retake the GCA after a 2 week 'cool off' period.
Why is the test proctored?
The test is proctored to guarantee the integrity of the assessment. Since GCA assessments are certified and shared across multiple companies, automated proctoring is required for the GCA. Without automated proctoring, for example, someone else can take the test for the given candidate and provide inaccurate test results. Note that Lambda School does not share your results with companies, but you may do so if you choose.
Virtual proctoring data is reviewed by CodeSignal only and is stored for no more than 15 days.
Share Your Results on LinkedIn
After the test, you can share your certification directly with employers or add it to your LinkedIn profile! Click here (Links to an external site.) to learn how. (Note that this is optional).
The test is four problems, which are CodeSignal/HackerRank/Leetcode-style programming challenges. Problem 1 is generally the easiest, progressing to the hardest with problem 4.
The result score is between 300 and 850 (best). 650 is about the low end for Junior Dev.
This test is about your problem-solving skill, not about your Googling skill. You are expected to ponder the problems and come up with your own solution. Pasting solutions in from elsewhere and trying to make them work is prohibited. Even googling for another solution is prohibited. (You can, however, search for syntax help.)
For this reason, you should practice this skill throughout CS. CS is all about using UPER to solve problems you've never seen before without Googling, and the GCA measures this skill.
Background
Since GCA is designed to measure skills that are important for almost all software developers, CodeSignal has aimed to find the common denominator between three different sources of data.
What are the most common topics taught in different CS programs at 4-year Universities in the US?
What are the most common topics covered during technical interviews at successful US-based companies?
What are the most common questions asked on StackOverflow that are about general programming and not specialized domain knowledge?
CodeSignal has used MIT OCW, EdX, Coursera, and Udacity course catalogs as a source for #1. They've used the book Cracking the Coding Interview, CodeSignal Interview Practice Mode, Leetcode, CareerCup, and Glassdoor Interview Questions sections to identify #2. And StackOverflow public API for #3.
How to Practice
Do the coursework in Lambda CS.
Try to generally restrict your searching to syntax unless otherwise directed
Don't search for problem solutions for the sprint challenges; syntax only
Same for the GCA, proctor-enforced
Additional, optional resources:
Go to the CodeSignal Arcade and solve questions in The Core without looking up the answer. If you look up the answer, it doesn't count.
Solve the first 50 problems
Except spend your earned coins to skip Corner of 0s and 1s
Some of these are challenging--feel free to buy your way ahead if you need to come back to a hard problem later
Keep solving more for more practice.
Once you get a few hundred coins, unlock the interview practice and other things in the main menu.
Head over to Leetcode and tackle the easy and medium leetcode algorithms problems, or problems on your site of choice.
Take the GCA Practice Test (24-hour cooldown).
Scoring
If you get 100% of the tests passing on a submission for a set of problems, you'll get a base score, listed in the table below. This base score is modified up or down based on a variety of factors.
Score Modifiers
The score is modified ±12 points based on three factors:
Number of attempts
Your score will be modded if you make more or fewer than the average number of submissions for a particular problem.
Running the tests doesn't count as a submission. You must click the
Submit
button for it to count.
Time taken
Your score will be modded if you take longer or shorter than the average amount of time to solve a problem.
Code quality
Your code quality will be automatically judged based on a variety of factors, e.g.: consistent spacing and indentation.
Again, the most the base score will change as determined by these factors is ±12 points.
Strategy recommendation: don't worry about the modifiers. Just concentrate on UPER and solving the problem.
Partial Credit
If you submit and pass fewer than 100% of the tests, you'll receive partial credit for the submission depending on how many tests you did pass. In other words, you won't achieve the base score for that problem, but will get part way toward the base score.
Scoring Table
If you get 100% of tests passing for the listed questions in the left column, your base score is in the center. On the right is the modifier range, ±12 points from the base score.
1 . . .
662
650-674
. 2 . .
700
688-712
1 2 . .
712
700-724
. . 3 .
731
719-743
1 . 3 .
743
731-755
. 2 3 .
750
738-762
1 2 3 .
763
751-775
. . . 4
780
768-792
1 . . 4
792
780-804
. 2 . 4
799
787-811
. . 3 4
805
793-817
1 2 . 4
812
800-824
1 . 3 4
818
806-830
. 2 3 4
825
813-837
1 2 3 4
837
825-849
For example, if you get questions 1, 2, and 3 100% correct, but you make a lot of incorrect submissions and take longer than average, you'll to score closer to 751. If you get them correct in the first submission in record time, you'll score closer to 775.
Strategy recommendation: Choose the problem that looks the easiest to tackle first. This is likely question 1, but read them all to find out.
Implementation, Problem-Solving, and Speed Ratings
In addition to the numeric score, additional ratings are presented. Lambda does not use these ratings, but they are included for your information.
Speed is your rating compared to the average speed to solve the problems.
The other two ratings are determined by which problems are solved, as shown below:
1 . . .
Low
Low
. 2 . .
Fair
Fair
1 2 . .
Fair
Fair
1 2 3 .
Good
Average
1 2 . 4
Good
Good
1 2 3 4
Excellent
Excellent
Question 1
NOTE: these aren't definitive or complete lists! They don't say exactly what will be on the test, and the test questions might require more or less knowledge than listed. The information below is included to give you an idea of the relative difficulty of each question.
Expected Knowledge
Working with numbers.
Basic operations with numbers.
Basic string manipulation.
Splitting a string into substrings.
Modifying the elements of a string.
Basic array manipulation.
Iterating over an array.
Can Include
Tasks that require a combination of 2 to 3 basic concepts. For example:
Iterating over an array and taking into account some condition.
Splitting a string by some condition.
Should usually be solvable using one loop.
The task description should clearly state the implementation steps.
Question 2
Expected Knowledge
Working with numbers.
Basic operations with numbers.
Splitting numbers into digits.
Basic string manipulation.
Splitting a string into substrings.
Comparing strings.
Modifying the elements of a string. – Concatenating strings.
Reversing a string.
Basic array manipulation.
Iterating over an array.
Modifying the elements of an array.
Reversing an array.
Can Include
Tasks that require a combination of 3 to 5 basic concepts. For example:
Splitting a string into substrings, modifying each substring and comparing with other strings.
Iterating over an array to produce two new arrays given some conditions, modifying the second array and appending it to the beginning of the first array.
Should usually be solvable using one to two nested loops.
The task description should clearly state the implementation steps.
Question 3
Expected Knowledge
Includes everything from the previous task.
Splitting a task into smaller subtasks/functions.
Manipulating two-dimensional arrays.
Iterating over the elements in a particular order.
Modifying values.
Swapping rows/columns.
Using hashmaps.
Using built in hashmaps to store strings or integers as keys.
Can Include
Implementing a specific comparator for strings.
Implementing a specific merge function for arrays.
Other implementation challenges that clearly explain what needs to be done and require translating the instructions into code.
Question 4
Expected Knowledge
Includes everything from previous tasks.
Working with trees.
Storing and traversing trees.
Transforming trees.
Understanding hashmaps.
Solving tasks that require understanding the implementation of hashmaps.
Fundamentals of discrete mathematics.
Brute-force search.
Checking all possible solutions to find the optimal solution.
Can Include
Tasks that require noticing an application of a certain algorithm, data-structure or technique.
Optimizing some queries with the help of data structures like hashmaps or sets.
Algorithms on trees like finding the longest path of a tree.
Rules
Additional clarifications to the rules:
Using scratch paper is allowed, but make it obvious (and maybe even say) that you're scribbling.
Using an off-screen whiteboard is allowed, but make it obvious that's what you're doing.
Recommend against referring to written notes since the proctor won't know what you're looking at.
Scan or take photos of your relevant notes so you can view them on-screen.
Prohibited: PythonTutor or any other external IDE, editor, debugger, or environment.
Exception: You may open a simple Python REPL in a terminal to quickly test commands or look up syntax.
Testing Link
SIGN IN WITH YOUR LAMBDASTUDENTS EMAIL! If you're not sure, go to your CodeSignal profile and make sure it's set as your primary email.
IF YOU DON'T, YOUR ATTEMPT WON'T COUNT!
There is a 2-week cooldown (measured down to the minute of your previous submission).
If this link fails, DM
@Beej
on Slack to get it updated.
See Also
What to Expect on the GCA including a link to the practice test
Last updated