Should I study computer science or software engineering?

What is the best way to transition from database development to programming/software engineering?

  • I'm looking for some advice on the best path to take to shift careers from database development to software engineering. Some background: I have an undergrad in Mathematics from one of the better engineering/computer science schools in NA. I was lucky to have taken a few computer science courses given me a bit of a foundation in CS theory (java programming, elementary algorithms, data structures). Since graduating I've been working as a database developer (6 yrs now), specifically in data warehousing doing lots of PL/SQL coding for back-end ETL processing and occasionally front-end web/database applications. For a while now I've been finding that I'm far more interested in the work involving building database driven applications and now I want to extend and apply this passion to more traditional areas of software development. I've done research online to come up with some first action steps to catch up on theory and start to practice coding. 1) Study following texts. * Code: The Hidden Language of Computer Hardware and Software * The C Programming Language * The Structure and Interpretation of Computer Programs 2) Simultaneously work through Python coding tutorials and look into solving as many online challenges, problems using Python. 3) Once reaching comfortable level of understanding of Python, start participating in open source projects, leveraging existing knowledge of HTML, CSS, JavaScript, AJAX, mySQL combined with Python. 4) A few months down the line begin serious study of algorithms via Introduction to Algorithms (Cormen) & MIT 6.006 opencourse. Need to brush up on some discrete math but I think prior exposure to advanced mathematics and basic algorithms from my undergrad will come in handy. So at moment I could use some direction on following: 1) Does the above learning plan look ok? Any other readings, concepts, practice to consider optimizing my time and opportunities? 2) I'm in a dilemma in that I want to leave my current job asap as I'm not gaining anything that will help move me towards software development (not to mention how boring, unchallenging it is), yet I don't have the practical experience on the resume to apply for programming positions. What to do? Ideally I would like to get a position which I can leverage my background in databases/data warehousing, like data services engineering (Amazon for example has several positions in this regard), and transition from there but even those need some work experience in java/c++. If I pick up minor open source work on the side in the following months, how far can that get me in being considered for development positions? Any other paths I should consider?

  • Answer:

    Pick one of C, SICP, Python.  Optimize for a github profile full of working code, open source or not.  (Study projects count.)  Consider your resources (eg if your buddy knows Java, start with Java).  It's probably easier to get a job than you think. You could also apply for my school, http://hackreactor.com, and do it all in like three months :D

Shawn Drost at Quora Visit the source

Was this solution helpful to you?

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.