Saturday, May 21, 2016

Birthlines and Deadlines, or: Go From 0 to 1 in Preparing for Master's in Computer Science

I've now revealed to you my new dream (To learn Computer Science) and why I'd bother subjecting myself to such an arduous task. The difficult part is over; I've made my decision, and all that's left is to do it. And do it I shall!

In this post I'll define what specifically my first major goal and sub-goals are in order to reach my dream. If you don't know where the finish line is, how can you expect to run towards it? I need a goal that's clear and measurable and gives me a hint about what I should do next. If this doesn't convince you I'm all in for achieving this dream, nothing will.

Goal 1: I will prepare for a Master's program in 
Computer Science.

As I mentioned in my last post, I'm giving myself 2 weeks to prepare for the start of my journey. That places my Goal Birthline at Sunday, May 29. My situation may be a little different from yours, or from most people's who would consider this journey. In the spirit of full disclosure:

  • I have no professional background in tech (education or employment) and I currently work in the mental health field.
  • I work full-time (75 hours every 2 weeks, with every other Friday off) and intend to continue working while getting my degree.
  • I will hopefully get assistance paying for graduate school to avoid racking up student loans, be that through scholarships, financial aid, tuition reimbursement, or family lending.
The problem: I'm effectively playing catch-up to prospective graduate students who already have a bachelor's degree in computer science or a similar field. I'm not keen on spending another 4 years in undergrad first, and I think it's possible to obtain a master's degree in even less time. I'd honestly prefer studying on my own, and I posed the ideal scenario of working in comp sci under a meritocracy to my brother and friends who are in the computer science field - while there are anecdotes of individuals who are self-taught or have certifications and can write good code, the majority of those with a solid theoretical and practical foundation have actual degrees (and have no excuse to be paid less than they deserve).

The premise I'm starting from is, "Most well-prepared and well-paid computer scientists have a related degree." To get into a program I will need to build up a technical background from scratch. So here's my crazy plan:

  1. Earn IT certifications.
  2. Find an entry-level IT job (ideally with exposure to programming).
  3. Study programming while working and preparing for grad school.
  4. Shift to a programming job.
  5. Apply to grad school.
  6. By graduation, I'll have both education and experience.
  7. Bam.

I can hear my computer scientist friends groaning. Listen, I get it: Comp Sci = programming = coding ≠ IT. Having said that, I'm looking at education and self-learning as long-term goals. If I really want to speed up my progress I need to get into the tech world. Now. I need to start racking up those 10,000 hours to reach Boss Level like we learned from Malcolm Gladwell in Outliers, by purposefully playing with the intent to get better. And wouldn't you know it: entry-level jobs are going to be quicker and much, much easier to obtain through IT than through coding, especially with just certifications.

Sub-Goal 1: I will work in IT.

When one searches "entry level IT certifications" to get your foot in the door, one will consistently find a specific cert over, and over, and over again. In addition, this cert came with a personal recommendation from a friend: CompTIA A+ (official site). If this is the standard, however, I assumed that people who have the certification would be a dime a dozen. Sure enough, an analysis of current job listings on four major job search websites reveals that out of 15 jobs within 10 miles of my home that I would be eligible for with an A+ cert, 1-6 jobs (depending on whether it was mandatory or recommended) were looking for a CompTIA Network+ cert, and 7-12 jobs were looking for a CompTIA Security+ cert. This makes sense, given my home's proximity to places like Fort Meade and the NSA. So in addition to CompTIA A+, I will distinguish my job application with CompTIA Security+ (official site).

There are an exhaustive number of training programs for these certifications. Extensive ones, speed ones, instructor-lead on-site ones, instructor-lead online ones, self-lead textbook ones, self-lead online ones. Just evaluating these products for legitimacy is taxing and time-consuming. Luckily, the same friend who recommended CompTIA A+ gave a high endorsement of the website TestOut. I wouldn't have guessed it given their somewhat gaudy website, and I haven't tried it myself to verify, but it seems it be an excellent product that can prepare you for a number of certifications online at your own pace. I will take their PC Pro Training for A+ (which is getting an overhaul on May 26) and Security Pro Training for Security+.

According to the subscription details on A+ and Security+, the total course times are 111 hours and 91 hours, respectively. Yes, I said subscription. Each training will set you back $79/month (or $349/year). I will save a detailed explanation of my schedules that I plan to use for this goal for a future post (EDIT: read here), but suffice to say I will be following Neil Fiore's advice from The Now Habit again: "don't" work more than 5 hours in a day, and more than 20 hours a week. At that pace it should take me approximately 38.85 days to complete the A+ training, and 31.85 days to complete the Security+ training. But I don't want to pay more than $79/month for a subscription to their product. ~_^ So I will utilize your 7 day free trial, thank you very much, and then round down to 37 days for A+ and 30 days for Security+ (in case the 7 day free trial doesn't apply twice). We have our first birthlines and deadlines!

CompTIA A+ Training ($79) Birthline: Sunday, May 29
CompTIA A+ Training Deadline: Monday, July 4
CompTIA Security+ Training ($79) Birthline: Sunday, July 17
CompTIA Security+ Training Deadline: Monday, August 15

I am leaving a gap between the A+ deadline and the Security+ birthline in order to take the certification exams. You haven't forgotten the whole point of these trainings, have you? Yes, I will need to pass the exams. Oh and purchasing the CompTIA A+ Voucher for $199 is good for only one exam, and you need to pass two exams in order to be A+ certified. At least you only need to purchase one CompTIA Security+ Voucher, but that will set you back $311. I already have my test dates in mind:

CompTIA A+ 220-901 Certification Exam ($199): Saturday, July 9
CompTIA A+ 220-902 Certification Exam ($199): Saturday, July 16
CompTIA Security+ SYO-401 Certification Exam ($311): Saturday, August 20

Following the certification on August 20, I will begin applying to jobs, and am giving myself a month to find and accept a position. It just so happens that September 19 is my birthday, the start of a workweek, and the start of a new pay period at my current job.

Job Search Birthline: Sunday, August 21
Job Search Deadline: Monday, September 19

Note the initial birthline where training starts - 5/29/16 - and the deadline where I will have a new IT job - 9/19/16. I intend to trade under 4 months of preparation and $867 in certification fees for an annual salary increase of at least $10,000. I'll let you decide if it's worth it.

Sub-Goal 2: I will prepare for applying to graduate school.

Now that I've presented a practical plan in developing technical experience on my resume, I'd like to return to the discussion of graduate school. Over the last few days I've been doing a little research into Master of Computer Science (MCS) programs at four schools in Maryland. It's important to keep in mind that at this stage of the game, what I need to know are the application requirements. Sure, later on it will be important to look at what the programs consist of, tuition cost, scholarships, research opportunities, etc. but right now that information will distract me from my goal and provide unnecessary anxiety. So I came up with the 5 most important question topics to ask about, given that I'm still a year or two away from applying: (EDIT: I tweaked and updated the below information in more detail in this post)

  1. Dates: What are your admission dates and application deadlines for Fall, Spring, and Summer?
  2. Application: What do I need to prepare in order to apply (general GRE, subject GRE, pre-requisite courses, official transcripts, letters of recommendation, statement of purpose, application fee, etc.)?
  3. Pre-reqs: If there are pre-requisite courses, do you offer proficiency exams? Is there a way to pre-approve courses to be transferred from a community college, an online university, or another institution? Can I be currently enrolled in the final pre-reqs when I apply?
  4. Pros: Do you offer pathways suited toward professionals, such as online or night courses? If so, how long do most students take to complete that path?
  5. Other: Is there anything else you can suggest to a prospective student who has no background in computer science? How should I contact in the future if I have any further questions?
Let's jump right into school examples, shall we? For shits and giggles I'll include links to Cybersecurity and IS programs, if available. These four schools aren't necessarily the only schools I'll be looking at, but they do provide a good basis for what lies ahead.

John Hopkins University Engineering for Professionals (410-516-2300 eleanorchlan@jhuapl.edu, great info video): MCS, Cybersecurity, IS Engineering.
  1. Dates: Rolling applications are accepted year-round. The Fall application deadline is around June 1, and Spring is around November 1, but you want to apply early if possible. Summer courses are also available.
  2. Application: You just need to complete the online application and submit official transcripts. No GRE or application fees are required, and they don't look at job experience unless your GPA is lower than 3.0.
  3. Pre-reqs: They require the following courses: (1) 1 year / 3 semesters of calculus, (2) a mathematics course beyond calculus (e.g., discrete mathematics, linear algebra, or differential equations), (3) a course in data structures, (4) a course in computer organization, and (5) a course in programming using a modern programming language such as Java or C++. They offer free proficiency exams for some courses which you can take one time, or they can pre-approve transfer courses. You can even apply to the program first and they will send you a letter with conditional acceptance (good for 1 year) and a list of courses you need to take prior to official acceptance.
  4. Pros: This path is geared toward professionals, so all courses are online or at night and require around 2.5-3 years.
  5. Other: It's possible to convert to or from a graduate certificate along the way.
University of Maryland Baltimore County (410-455-3500): MCS, Cybersecurity, IS
  1. Dates: The Fall application deadline is June 1 (January 1 for financial consideration), and Spring is November 1 (June 1 for financial consideration). No Summer semester is available.
  2. Application: They require an official transcript, 3 letters of recommendation, a statement of purpose, General GRE scores (from the last 5 years, though you can do a waiver request), and a $50 fee.
  3. Pre-reqs: They require the following courses: (1) CMSC 203: Discrete Structures, (2) CMSC 313: Computer Organization & Assembly Languages, (3) CMSC 331: Principles of Programming Languages, (4) CMSC 341: Data Structures, (5) CMSC 411: Computer Architecture, (6) CMSC 421: Principles of Operating Systems, (7) CMSC 441: Algorithm Design and Analysis, (8) MATH 151: Calculus I, (9) MATH 152: Calculus II, (10) MATH 221: Introduction to Linear Algebra, (11) at least 1 more advanced math course, (12) at least 1 course from the following list: CMSC 435: Computer Graphics, CMSC 451: Automata Theory & Formal Languages, CMSC 455: Numerical Computations, CMSC 461: Database Management Systems, CMSC 471: Artificial Intelligence, CMSC 481: Computer Networks. There are no proficiency exams, and you can check the Course Articulation Database to see which courses can transfer from which university. If you are applying in your final pre-req semester they may be able to offer you conditional acceptance.
  4. Pros: There are no online courses, but you can take part-time courses at night (though that path could take 3-4 years).
  5. Other: N/A
University of Maryland University College (800-888-8682): NO MSC, Cybersecurity, Accounting & IS
  1. Dates: There are multiple sessions running every semester.
  2. Application: In addition to the $50 application fee, you need to complete the online application and submit your transcripts. No GRE is required.
  3. Pre-reqs: All courses are taught from the bottom-up with no pre-requisites (though there are non-credit optional prep courses available in coding and IT).
  4. Pros: All courses are online and can be completed in about 1.5 years or 6 semesters.
  5. Other: N/A
University of Maryland (301-405-2664 / 301-405-2662): MCSCybersecurity, IS
  1. Dates: The Fall application deadline is December 15, and Spring is only for UMD students.
  2. Application: They require transcripts, a resume, recommendation letters, and General GRE scores (average scores are: Verbal - 158, Quantitative - 163, and Analytical - 5.0).
  3. Pre-reqs: (1) CMSC 330: Organization of Programming Languages, (2) CMSC 420: Data Structures, (3) CMSC 451: Design and Analysis of Computer Algorithms, (4) MATH 140: Calculus I, (5) MATH 141: Calculus II, (6) MATH 240: Linear Algebra.
  4. Pros: Their website notes that full-time students who start with a B.S. degree take around 2-2.5 years to complete the program, so part-time must take longer. The status of online or night courses is unknown.
  5. Other: N/A
There are a few things to note. Firstly, I was unable to contact UMD through their phone numbers so I had to find the answers to my questions on their website, which was limited. Secondly and most importantly, the biggest thing to prepare will be the pre-requisite courses. As you can see though, the number of pre-reqs varies considerably from 0-12, and as one advisor pointed out some of those pre-reqs require MORE pre-reqs first. That could take quite a while, and deserves an analysis and post later on down the road. Thirdly, a good resource to use in seeing how community college courses in MD transfer is ARTSYS, though such courses typically only go up to the 200 level of a university.

It's about time I wrap up this post. I think I'll end with an adjusted timeline for my crazy plan I mentioned above.
  1. Earn IT certifications.
    1. CompTIA A+ Training Birthline: Sunday, May 29
    2. CompTIA A+ Training Deadline: Monday, July 4
    3. CompTIA A+ 220-901 Certification Exam: Saturday, July 9
    4. CompTIA A+ 220-902 Certification Exam: Saturday, July 16
    5. CompTIA Security+ Training Birthline: Sunday, July 17
    6. CompTIA Security+ Training Deadline: Monday, August 15
    7. CompTIA Security+ SYO-401 Certification Exam: Saturday, August 20
  2. Find an entry-level IT job (ideally with exposure to programming).
    1. Job Search Birthline: Sunday, August 21
    2. Job Search Deadline: Monday, September 19
  3. Study programming while working and preparing for grad school. Take pre-requisite courses online or at a community college while learning programming on the side.
    1. Pre-req Birthline: Fall 2016???
    2. Pre-req Deadline: Summer 2017???
  4. Shift to a programming job.
    1. TBD
  5. Apply to grad school.
    1. Fall 2017???
  6. By graduation, I'll have both education and experience.
    1. Spring 2019???
  7. Bam.
    1. 2020???
More to come soon!

No comments:

Post a Comment