Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

My Experience at Bradfield CS (School of Computer Science)

TLDR:

  • I highly recommend it; I took 6 classes from 2019-2021
  • Great for folks who want to understand core systems of computer science, reap more benefits at work & refine their mental models of the computing landscape
  • What you get out if it depends on your personal goals / motivations
Bradfield offers =  
- time/deadlines, high accountability, passionate peers & instructors & well curated/practical applied curriculum.
- Bradfield feels a lot like going to the gym with an expert personal trainer, great nutrition plan, & motivated peers alongside you the entire journey. Are you ok spending mental bandwidth, energy & time curating the internet building your curriculum and foundations? 

My Background (and Biases)

TLDR:

  • bootcamp grad (Hack Reactor)
  • college dropout (UC Berkeley)
  • worked at big tech (Salesforce, LinkedIn), my own startup (attempted to try solo/indiehack) & small startups (< 20 people)
  • I have taken 6 Bradfield courses (early 2019 - early 2021)
  • I'm a fan of immersive education, having experienced job trainning programs like Year Up, Hackreactor (coding bootcamp) and Bradfield (post bootcamp learning, master's alternative)
TLDR details on My Educational & Professional Journey Up to Now

Before & During Highschool

  • I am came from a low-income family, but I never felt I lacked the basic necessities.
  • Growing up, I has always struggled in school. I repeated classes in the summer. I lacked internal motivation and had trouble connecting "why this was all important"
  • I lacked a healthy self-esteem; I nearly flunked out of highschool my 11th grade year, but made a turn around in my life after meeting some role models on a college tour.
  • I realized that I need to get my life together and stop wasting away the opportunities my parents provided by immigrating to the US

After Highschool: Community College, UC Berkeley

  • After highschool attended community college for 2.5 years at City College of San Francisco (CCSF)
    • My original intention was to complete a social science's major (Sociology) then go to graduate school and study law or work in higher education
  • I paused my education at CCSF and took a gap year to support myself, ease financial strains at home & keep my mental sanity. The free technical job trainning programming I did during my gap year to stay productive is called Year Up
  • I went back to community college to complete my general education, after the Year Up program.
    • Around this same time, I started self-teaching myself web development on codecademy.com in my free time & steadily started realizing it might be a future career path for me.
    • I discovered, Hack Reactor (a coding bootcamp) while self-learning & decided I to attend after months of preparation.
    • A semseter later in the spring, I was admitted to UC Berkeley on a full ride along side my twin brother.
  • I attended Hack Reactor over the summer, and upon completion that decided not to attend UC Berkeley
    • Note: The fact the I would need to "restart" my entire undergraduate curriclum to switch to Computer Science (2 years at community college, 2 more at Berkeley) did not seem feasible to me, especially with family financial strains present
    • I did eventually go back to UC Berkeley & try out 1 semester, while working full time, but I felt it wasn't the right time to continue. Also FYI: no more full scholarship if I decide to go back since my income bracket is higher now; don't know if it makes sense to drop 30k to sit in an undergraduate classroom at this stage in my life? #dropout

Professional Career:

  • Started first full time job at Salesforce, after completing coding bootcamp
    • I mostly focused on frontend web development
    • After about year, I realized I wasn't growing at the pace I wanted. Additionally, I wanted exposure to an engineering culture like Google, LinkedIn, MSFT, see more systems, work with more open source technologies and work at a company where I could connect with the product a bit more.
  • Started 2nd career job at LinkedIn in 2017 on the Growth/SEO team
    • First exposure to massive large scale systems, fullstack team, but mostly frontend/product engineering for me though
  • Left in 2019, worked in the start up world for almost 3 years
  • Oct 2021, returned to joined LinkedIn as Sr.SWE
    • working on an Infrastructure team in a fullstack role (yay distributed systems)

FAQ - Frequently Asked Questions:

Note: these questions are from other peers/alum inside the Hackreactor (coding bootcamp) alumni slack channel

1. Do you feel like Bradfield was worth it? I see you're a Sr.Swe at LinkedIn. Do you feel Bradfield was necessary to clear system design interviews when interviewing at that level?
Clifford Response

You don't need Bradfield to crack entry into FAANG or break into the industry or even for SWE-Sr.SWE levels

  • SWE-Sr.SWE levels -- very leetcode heavy in interview process IMO
  • Staff level -- some leetcode + lots of leadership/experience stories
  • SrStaff+ level -- very little algo, tons of experience based questions dive deep into internals of the work you do
  • I’d love more input here, but I’ve observed Sr.Staff+ at FAANG+, which very few stay long enough to make it here, requires some luck, lots of technical skills, you’ll need a solid view of your field on top of your specialty, unless your a hyperspecialist wunderkind

I do feel that Bradfield made me a much better engineer, which in turn makes work more fun & my opportunity potential more.Bradfield is great for:

Rohan Response
  • FWIW I mostly agree with Clifford. I used to think Bradfield was necessary to pass Sr-level interviews but actually, knowing **Bradfield stuff just massively narrows the margin of luck.**You're much less likely to have an 'unlucky' interview post Bradfield because you have a much broader understanding of things, but that's not at all the same as being 'unable' to pass without it. Say you'd usually have a 70% chance of passing a SD interview with standard/superficial prep, Bradfield might up that to ~90%... but that's about it.As Clifford alluded to, I think the real superpower bradfield gives you is the ability to escape web-dev altogether and work on databases/networks/kernels/dist-systems etc. But again, it's not necessary. Hack Reactor is to programming as Bradfield is to computer science. You don't

  • need to go to HR to learn to code. Bradfield actually maintains teachyourselfcs.com if you want to just teach yourself and not pay anything. Some v successful HR grads have gone this route too. Example github.com/reem maintains a lot of the most popular systems-level libraries in Rust, including the de-facto standard HTTP library, unit testing frameworks, immutable datastructures and I think the express-equivalent web framework. There're also a few HR grads who's first job just landed them working on TSQL or other really cool projects, just by pure chance.

2. Did you feel it was necessary to do all the courses or were there specific ones that are def worth doing and others just skim the self-study route?
Clifford's response

No not necessary to take all courses, but it depends on the individual goals/vision for themselves.

Bradfield =

  • time/deadlines/ high accountability, passionate peers/instructors & well curated/practical applied curriculum.
  • Bradfield feels a lot like going to the gym & with an expert personal trainer & motivated peers. Are you ok spending mental bandwidth, energy & time curating the internet building your curriculum and foundations?

Circling back to internal motivation and goals and how it related to taking multiple courses: It depends on your individual goals/vision for yourself.

My motivation for taking all the courses was to build broad understanding of the entire field, which I personally believe will help me towards other goals. For example:

  • one day I may give startups another go, I may want to be a CTO or technical leader. Below are some folks that inspire me & motivate me to get better technically
    • Evan wallace: cofounder/CTO of Figma, creator of ESBuild
    • Mitchel Hasimoto: Cofounder/CTO of Hashicorp
    • ....
  • I work at LinkedIn, where I'm exposed constantly to distributed systems, custom database & query languages engines etc. Ex: kafka, expresso, avro created here & other stuff.
Rohan's response Some of them build on top of each other so it's hard to say. - My *favorites* were databases, architechture, Eliott's 'data structures' class and operating systems - IRL, architecture is fundamental to most things. Data bases is the most useful/transferrable. Networking is important but has lots to rote learn.
3.How much of a bottleneck does having a lack of this foundation create when aiming for roles above senior as well as being able to complete your day-to-day work at below senior levels? My understanding is, at senior/staff+ levels, leadership/communication skills are of much greater priority?
Clifford's response It depends on the role / scope among other things; See staff archteypes article: https://staffeng.com/guides/staff-archetypes

Do I need to know about database engine internals to get my specific work done?

  • No, but it has helped me reason about systems, have deeper technical discussions with backend/distributed/systems & storage teams. I can contribute more effectively engage in discussions to steer the direction of implementations in other directions, which in turn helps my team and company as a whole

Do I need to know about {computer-architecture, OS, database-internals, languages-and-compilers, distributed-systems, computer-networking}?

Rohan's response It totally depends. There are Senior roles that are mostly about being organized and having good product vision. There're others that are all about deep technical knowledge. For the latter, it's definitely a bottleneck and for the former, not at all. FWIW, I think the majority of senior+ roles in *most* companies (incl. fang et al)  do not require deep technical chops, and are mostly about the things you highlighted in your question. For day-to-day work, I think you'll find hardcore CS comes up *very* rarely and when it does, you'll have plenty of time to ramp up.
4.Is it worth the financial investment / time
Clifford's response The 18k I spent for 6 courses (2019-2020) out of pocket, I easily got back with my sign on bonus when I moved companies. If you decide to try a new play & hop companies in the future, you will likely get it back with your sign-on bonus and new compensation. But you might find, you don't need to move companies since promo's give you nice compesation equity as well.

Rohan (Google), Ivan (Robinhood) and many other folks shared similar thoughts

Ivan's response

See: https://www.echevarria.io/blog/bradfield-is-phenomenal/index.html#value-on-the-job

5. How much of what is taught at Bradfield is in line with undergrad CS courses. E.g. databases 101, networking 101...
Clifford's Response

I'd say its in line with the topics you'd cover at a top CS programs like Berkeley/Stanford/MIT etc.

  • I went to Berkeley (not CS) so I can say that what I was exposed to at Bradfield feels very relevant to all the courses they offer (I've read their entire curriculum + have several friends who majored here, took CS elective here 1x)
  • We read / were exposed to CS papers / research that are seminal to the field throughout different Bradfield classes

You can definitely learn all this yourself like you've mentioned.

I'm trying to optimize for reaching senior as fast as possible.

if you want a super high level overview to build breadth take the 8-week course.I haven't done the course, so can't share more than that image, which Oz (bradfield creator/lead instructor) shared on twitter. It's a great "jumping off" point into more things and if you want to dive deeper take the 1 year cohort based curriculum

The only things I'd add to your approach is to actually implement a bunch of the ideas in the text books. E.g., Bradfield's approach where you basically build a relational DB query engine for the databases class is really good because there's a lot of subtlety you just don't encounter until you try it. Same with networking (parsing packets 'by hand') and architecture (writing assembly yourself). For the higher level ones like dist-sys or operating systems, you're approach probably would work pretty well. -- Rohan

This ^^^^^^ 1000%

More detailed opinions on comparison with undergraduate studies

6. Is Brafield a replacement for a CS undergrad program? This depends on your own goals / motivations & its I think its not fair to compare them equally.

Some great things college offers that a bootcamp or short courses don't offer

  • longer social experiences (living on campus, clubs, dorms etc)
  • ability to take classes in other majors (philosophy, English, Biology etc)
  • if you have the means (financial etc) & can afford the longer time span

Some great things about job trainning programs, bootcamps, trade schools etc

  • can help you get into the industry faster
  • great for folks who are career changers
  • accomodating to folks who have fulltime jobs (are working professionals in some capacity / employed)
  • great for folks who feel quite sure that this field is right for them and want to get started

More detailed opinions

7. How does Bradfield compare to graduate school programs (Master's / PHD)

More detailed opinions on comparison with Master's programs:

  • Julius's thoughts here
  • Oz thoughts here:

PHDs

  • PHD's are in their own class (longer length 4-5 years) & the format & style is not close to what you experience in undergraduate studies, bootcamp or a trade school.
  • Typically, you might pursue one if you're interested deeply specialization in an area of a specific field, become a world-class expert. Typically, you need to have majored in the same field in undergrad or have an undergraduate degree.
8. Should I Enroll in Bradfield? What types of future/long term opportunities can Bradfield open up for me?

Julius's thoughts here Rohan's thoughts here

Eugene's response The goal of the program, I think, is to take web dev people and give them the knowledge to become systems programmers. The most valuable thing it has given me so far is confidence to explore systems level things that would have seemed out of reach before. For example, the first and second modules focused on cpu level operations/optimizations. Understanding and optimizing assembly, memory layout, cache locality, various mechanical sympathy things. Now, I’m probably not going to hand roll assembly but might organize structs to maximize cache utilization and can now do so with a first principles understanding. This is how I see the program’s benefit. Maybe everything isn’t directly applicable to your current job (although Oz did call some people from the cohort out on twitter recently for using things they learned in the program at their jobs) but it will give you the confidence and the knowledge to explore vast territory.
9. When migh it be the right time in my career to take a course at Bradfield?

TLDR:

  • generally the consensus is when you have about a year of working experience in a programming role.

Julius's response here

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment