Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Is programming a good fit for me?

  1. Jun 15, 2010 #1
    I just completed my undergrad in physics and applied math, but I liked the applied math more partly because the physics got too abstract for me - I liked classical mechanics more than quantum mechanics. As a result, I had been strongly considering getting my MS or phD in mechanical/aerospace engineering. In fact. I thought I was completely sure of this until I came across Paul Graham's (he's a programmer) website. If I pursued a career in ME/AE, I would work in academia, a private or public company, the national labs, or the army/navy/air force labs etc. But starting a startup sounds much more interesting to me because I can run my own company, not have to deal with office politics, deal with bureaucracy, and have the potential to make alot more money than in ME/AE. So I thought about how much I enjoyed programming to see if I would like to start my own startup. Well thats something to think about.

    I only took one CS class in my undergrad, which was an intro to C++ course, a few years ago. I didn't even know what HTML was until about a week ago. Other than C++, matlab, and mathematica, I know essentially nothing about other programming languages, what algorithms are, etc. But I did use C++ extensively in one of my undergrad research projects with an applied math professor. He basically gave me a relatively simple physics problem he wanted me to model and then generate simulations of the process using C++. Given that my only prior programming experience was taking 1 intro CS course, I struggled mightily with the project. My program consisted of only basic if, for loops, etc. Nothing complicated and no object-oriented programming. Though I did find it challenging and fun to write the project, I also ran into lots of frustrations. In the end, I was able to get the program to do was it was supposed to, but it probably wasn't the best program that could as much as possible as quickly as possible. I understand that running into unexpected problems with unknown solutions is a part of research projects, but I'm sure if I had better programming skills I could've done things ALOT more efficiently.

    Anyways, I heard that applied math and CS/programming are very similar. But other than them both requiring problem-solving and critical-thinking skills, I didn't really see their similarities from my applied math classes. Then again, I didn't take discrete math, number theory, combinatorics, or graph theory. The applied math courses I took were analysis, PDEs, ODEs (proof-based), linear algebra (proof-based), prob/stats, fourier analysis, and numerical analysis. I did enjoy the numerical analysis course as the concepts were interesting and the HW problems involving Matlab were challenging. But again, I wasn't good at it and often couldn't obtain full solutions to the programing problems. I did much better with the numerical analysis theory

    That being said, would someone like me enjoy a job involving lots of programming that's required for doing stuff on websites? I'm pretty sure that I would like programming for solving physical/engineering problems. The question is just whether I would like it enough to create and run my own website for something like an online dating site.
    Last edited: Jun 15, 2010
  2. jcsd
  3. Jun 15, 2010 #2
    If you're setting up that type of commercial website then 'programming' won't be the mainstay of your day-to-day activity. You'd be a webmaster as well as a business owner - the design of the website and maintenance would be the only things that are really programming and whilst there would be an initial burst in activity during set up, you'd be spending almost no time from them onwards on this. Marketing, finance and customer administration would take the majority of your responsibility if you're running it on your own or with someone else.

    I've written websites in the past myself, and certainly wouldn't consider this type of activity anything like applied math. It's true that studying applied math gives one a good preparation for the type of mindset you need to program - but this is more with setting up a problem and solving it - something that exists in a different way with website design.

    If you're interested in a future involving programming work - you could look for a PhD in some sort of modelling or programming activity solving physical and mathematical problems. Engineers are very big on modelling, you could look into Finite Element Analysis for an idea of what many mechanical and aeronautical engineers do. Otherwise, in academic science MATLAB is huge. You would be able to find plenty of post-graduate projects using MATLAB for modelling and solving various kinds of problems. If you want to get back to it in your spare time without having to pay for it, you can try a free alternative that runs MATLAB scripts called 'Octave'.

    Having said this, I think one of the things that's convenient about setting up a web-business is that you can work on the website in the evenings whilst you still have a day-job. This way, you'll discover how much you enjoy the process. If you want to give website design a shot, set yourself up a local Apache server, install php and mysql and play around with it. This way you can learn on your home computer without even having to pay for webspace.
  4. Jun 16, 2010 #3
    I don't think I would mind the work as a business owner. Although I have the opposite personality of a salesperson, I would also like to take the pride in running my own company

    But given my past difficulties with programming, how hard would it be to write and design websites? This is one of the things scaring me the most actually since Paul Graham said that founders of startups should be very good at programming.

    I actually heard from Paul Graham and others that if you want to start a startup then you have to quit your day-job otherwise it would be too easy for you to give up and make excuses to not work on your startup. But I guess it can be a good idea at first because, like you said, it would be a way for me to see how much I enjoy the process.

    I'll definitely look into the Apache server, php, and mysgl. Thanks for your help
    Last edited: Jun 16, 2010
  5. Jun 16, 2010 #4
    I have worked in sales for a couple of years before, it's a very cutthroat environment - most people do find it very difficult. If you're going to run your own business, depending on what the business is actually going to do, you'll probably need good marketing and sales skills. I'm not sure if there's some sort of business start-up scheme you can join if your government offers one. I would check this out.

    It will be difficult to get things rolling, and, depending on what your company would offer, there could be a significant amount of time between 'startup' and the point where money actually starts to come in. I do programming for my work, though I now almost exclusively use MATLAB I would say it takes about 12-18 months of usage with a brand-new language before you can really call yourself 'competent'. Certainly you should look to spend a few months with php and, if appropriate, SQL before launching your website. You could do it much quicker, but you'd be much less prepared for when problems arise. It's especially important to understand nuances when you're designing a website for business - you need to know how to make sure your web page is visible and works-as-intended for as many people as possible.

    You should probably also at least familiarize yourself with Javascript, since there will be certain things that can be easily done in JS but would be more complicated otherwise. I would also look into Perl.

    As far as the actual website design goes, you will also need to have some reasonable graphics skills.

    I guess this advice would certainly apply to those who already have the skills to start their business. It's up to you, but if you can afford to have quite a long time out when you're just learning before making any income then go for it. It will take much longer to get things going when you're not able to commit to it full time - but it may not be an option given the amount of time you'll need to spend getting yourself up to speed.

    For the learning of the languages, the 'technical stuff' (you'll need to be familiar with how servers work - setting up a local Apache server should help with this at least) and graphics you should try to design a schedule so you have something to stick to. It will be necessary to refine it as-you-go, but I would say worth it in the end. Try to focus on one language at a time, since once you've learned a lot about, say, php, you'll maybe have a better idea of the things that you want to learn from the other languages.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook