I enrolled at my current MSc in computer science program last year having never completed a single computer science course in college. I decided to apply because 10 years after college I had a fairly successful career as a front-end web developer and figured it would be great to have a degree so as to look like a more legitimate programmer than what my anthropology B.A. degree might imply. I had taken several math and physics courses in college and did well, so I figured a computer science degree could be manageable.
Now, it's been over a year since my program started (I attend part-time). I dropped a core class in basic algorithms in my first semester because I couldn't understand algorithms and decided to enroll in the same course offered this summer. I'd hoped to do well this summer, but it looks like if I pass I'd be just barely scraping by. It feels like everyone is doing much better than me and can solve problems faster and more accurately. If you were me would you quit the program? I'm not sure if it is:
- a lack of a background in undergraduate computer science
- the fact that I am an older student who is nearly 40
- a lack of aptitude for this subject
Any thoughts from others in computer science, engineering, and mathematical sciences would be much appreciated.
EDIT: It's been 7 months since I posted this and I've realized the problem. Front-end web development quite frankly is nothing like computer science. Many concepts in my basic algorithms course requires a good grasp of recursion, which I didn't have before entering the program. All the programming I had done in the past was iterative. Once I was able to understand and (more importantly) correctly apply recursion to everything from Towers of Hanoi to dynamic programming the algorithms course got much easier. To anyone starting graduate school in computer science--never underestimate the importance of recursion! Even if you think you understand it, test yourself with other students to make sure your understanding is solid!
More generally, my advice to anyone starting out in computer science is to figure out what it is you are weak at and work to get stronger in it. That can be hard to do initially if you are overwhelmed by the material and everything just appears really difficult, but talk to your professor and ask him or her to help identify your areas of weakness, never give up, and you will be able to master the material soon.
Btw, I did take a one year Intro to CS course for students without engineering/math backgrounds, but it mostly focused on object-oriented programming and glossed over recursion.