#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    19
    Rep Power
    0

    How to Pursue a Programming Career Without a Degree???


    Hello,

    I am curious to know what would be the best approach to pursuing a Programming career without a Computer Science or related degree.

    My reason behind not getting a degree is one, the cost. If I can find most of the information online and find most of the resources to learn software development/programming myself then why on Earth should I pay thousand of dollars to be taught information that I can find and teach myself at a much cheaper rate?

    For two, I am currently approaching my second year in college attending a local community college. I have some basic skills in programming, but I need time and practice to build on them. Time that I do not have due to the fact that I am working two jobs and going to school (online) full time. I feel that if I had more time to be dedicate in this, I would be able to master it. It is not like college is difficult for me it is just that I do not feel the purpose of going through and paying for all of these junk classes when only my core classes are really going to matter.

    And for three, I can also find the information from most of my my core classes online, and more. So why should I pay all of this money for a piece of paper?

    I have already decided that I do not want to continue school due to these reasons. But if anyone who has gone down this route before and could please give me some pointers, I would be very greatful.


    Thank you all...
  2. #2
  3. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2013
    Location
    Saint-Petersburg, Russia
    Posts
    237
    Rep Power
    29
    Hi!

    Short answer is "yes". Nowadays one need not necessarily a master degree to be a programmer.

    I myself am an example. I've started my university education twice (the second time with relative success), but I did not finish it properly both times.

    Currently I am working for some company in California (though I myself reside at the other part of the globe) and my salary is considerably good (at least I did not think such money are possible to me to be paid several years ago). Though of course now I want some further progress anyway

    However, if you think that my answer is the barrel of honey - here is your spoonful of tar in it: one needs great lot of practice in programming whether one is going to get CS degree or not.

    Jesus said that "faith without deeds is dead" - and same here - degree without practice is almost nothing.

    It is hard to give you more advice or hints without knowing what your current skills are, have you any preferences in IT and which country you live in.

    Here is the link to post about my "career" at some neighbor thread if you think you want know more:

    http://forums.devshed.com/showpost.p...61&postcount=3
  4. #3
  5. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    19
    Rep Power
    0
    When it comes to my experience with programming I am still a noob. I have some basic skills in Python, Javascript, HTML, Windows Powershell, and basic shell scripting. But I am not fluent in any of those.

    On the other hand I live in the other hand, I live in the United States, so I don't know what the comparison is to the cost of tuition for you there in Russia.

    I honestly feel that if I dedicate more time into it, that I will become better at it. That is why I feel I should do this...
  6. #4
  7. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2013
    Location
    Saint-Petersburg, Russia
    Posts
    237
    Rep Power
    29
    so I don't know what the comparison is to the cost of tuition
    I think it is the first time I met the word "tuition" - I'm sorry for my English is too poor.

    If it is about cost of education - I was lucky enough to get free university education (such privilege could be won by good success on entrance exams). However I have no patience enough to learn properly. Moreover my courses were about automation of electric drives and similar systems - not in programming... So I left the university both times.

    I have some basic skills in Python, Javascript, HTML, Windows Powershell, and basic shell scripting.
    Well, that is far not as bad!

    One of the shortest paths with such start is to pursue a career of web-developer. For example you can deepen your knowledge of Python (later learn Django web-framework in it) and also HTML+Javascript+CSS. One abbreviation missing from your list is some database experience, for example MySQL.

    It would be possible to learn necessary minimum of all of them in about a year (maybe faster - much depends on you).

    However there are not as much positions for Python/Django developers (you'd better monitor some job-offering site). More popular choice is to substitute Python with PHP. There are a lot of frameworks for it too - and learning curve in PHP is even more gentle.

    The other important thing to consider is that after you'll prepare yourself enough - you'll need to find some decent job in office to gather more experience here - and you should be ready that at first year your salary would be of junior level. If you have a wife, children and mortgage - this perhaps would not be quite comfortable. However, if you overcome and will continue growing - in 2-4 years you can have your wages multiplied by 2-4 also.

    It would be good idea to check salary levels in your region.

    PHP is not the only variant. I myself preferred to study java several years ago (after C) - which is also used for web-applications, but mostly for ones used on enterprise level rather than on web itself. But it is somewhat harder to start.

    Besides, in US accent for using .NET platform instead of Java is somewhat stronger.

    Quite different direction, which is also popular and could be mastered speedily enough - is programming for mobile devices. Mainly for Android (in Java) or iOS (in Objective C).

    Of course you will be able to switch "direction" while in progress.

    However, I know that many people failed on this way. It really requires to have some passion to practice in these things steadily. If you do not feel that programming is really interesting to you - perhaps it would not be good choice.

    Other important thing is that one should not only study all these languages and technologies. It is really crucial to practice in programming logic, algorithms - you see, all the things which does not depend on specific programming language. It is the ingredient which will allow your salary to grow after some "entry level".

    Concluding, I will also say that university education is not the completely stupid and unnecessary thing. However, I suppose you will be able to see better what education you need or want when you will already work in this field. By the way, web-resources like http://coursera.org could be of great help in this.
  8. #5
  9. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    19
    Rep Power
    0
    Originally Posted by rodiongork
    I think it is the first time I met the word "tuition" - I'm sorry for my English is too poor.

    If it is about cost of education - I was lucky enough to get free university education (such privilege could be won by good success on entrance exams). However I have no patience enough to learn properly. Moreover my courses were about automation of electric drives and similar systems - not in programming... So I left the university both times.


    Well, that is far not as bad!

    One of the shortest paths with such start is to pursue a career of web-developer. For example you can deepen your knowledge of Python (later learn Django web-framework in it) and also HTML+Javascript+CSS. One abbreviation missing from your list is some database experience, for example MySQL.

    It would be possible to learn necessary minimum of all of them in about a year (maybe faster - much depends on you).

    However there are not as much positions for Python/Django developers (you'd better monitor some job-offering site). More popular choice is to substitute Python with PHP. There are a lot of frameworks for it too - and learning curve in PHP is even more gentle.

    The other important thing to consider is that after you'll prepare yourself enough - you'll need to find some decent job in office to gather more experience here - and you should be ready that at first year your salary would be of junior level. If you have a wife, children and mortgage - this perhaps would not be quite comfortable. However, if you overcome and will continue growing - in 2-4 years you can have your wages multiplied by 2-4 also.

    It would be good idea to check salary levels in your region.

    PHP is not the only variant. I myself preferred to study java several years ago (after C) - which is also used for web-applications, but mostly for ones used on enterprise level rather than on web itself. But it is somewhat harder to start.

    Besides, in US accent for using .NET platform instead of Java is somewhat stronger.

    Quite different direction, which is also popular and could be mastered speedily enough - is programming for mobile devices. Mainly for Android (in Java) or iOS (in Objective C).

    Of course you will be able to switch "direction" while in progress.

    However, I know that many people failed on this way. It really requires to have some passion to practice in these things steadily. If you do not feel that programming is really interesting to you - perhaps it would not be good choice.

    Other important thing is that one should not only study all these languages and technologies. It is really crucial to practice in programming logic, algorithms - you see, all the things which does not depend on specific programming language. It is the ingredient which will allow your salary to grow after some "entry level".

    Concluding, I will also say that university education is not the completely stupid and unnecessary thing. However, I suppose you will be able to see better what education you need or want when you will already work in this field. By the way, web-resources like http://coursera.org could be of great help in this.
    Yes!!! I completely agree with you. I honestly do feel passionate about programming, I just never have the time to be completely dedicated in it, learn more about it, and to master what I already know.

    I do have another question though. What do you think about volunteering and going into projects? Would you recommend me doing that? If so how would I go by doing this? I have no idea how to get involved in a "programming project"? (open source projects)
  10. #6
  11. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2013
    Location
    Saint-Petersburg, Russia
    Posts
    237
    Rep Power
    29
    I just never have the time to be completely dedicated in it
    You definitely need not dedicate all your time to this matter, however for achieving any meaningful progress you need to put at least about 10 hours each week to it. Of course, the more the better.

    When you'll manage to get employed things will go easier since you'll have about 40 hours of practice a week

    What do you think about volunteering and going into projects? Would you recommend me doing that? If so how would I go by doing this? I have no idea how to get involved in a "programming project"? (open source projects)
    I fear there is no great chance
    I had the same idea when I was learning Java. However I soon understand that here are two problems:
    - most open source projects are too complicated for novice;
    - people already working on projects do not like to get beginners involved since this slows down the work and usually increases the mess in the code.

    However, there is no problem for you to start your own projects some day. They could be clumsy at beginning, but this will be anyway useful since it allows you to learn usage of some industrial development tools and probably create your "portfolio".

    At the very beginning it is better idea to spent some time on websites with short programming tasks and automatic checking systems. The goal is to gain "fluency" in fundamentals of your chosen programming language and basic control flow constructions etc. Of course if you'll find that basic tasks are already too easy to you, that would be the signal that you can proceed to next level

    I've tried to teach some of my friends (who insisted on that) the basics of web-development from scratch, i.e. avoiding the step mentioned in previous paragraph - but this have not lead to success, I fear - though they got the technical concepts mostly all right, they were overwhelmed by great amount of errors in their simplest programs, which they seemed to be unable either to avoid or to trace and fix afterwards...

    By the way, one more good source of practice is browsing other's homework at forums and see what you can implement already and what is above your skills still

    The other important thing is to post your sources at forums sometimes and ask people to tell how bad they are and in what sense they should be improved. Working code is not always good code - so we need to learn the concepts of the "good" one.
    Last edited by rodiongork; November 1st, 2013 at 09:56 PM.
  12. #7
  13. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2013
    Posts
    19
    Rep Power
    0
    I fear there is no great chance
    I had the same idea when I was learning Java. However I soon understand that here are two problems:
    - most open source projects are too complicated for novice;
    - people already working on projects do not like to get beginners involved since this slows down the work and usually increases the mess in the code.
    I understand what you mean. But I hope with time that I will be able to get to this level. But do you know of any other ways I can gain experience on my belt as a noob. Just to build my portfolio and meet new people in the field?

    there is no problem for you to start your own projects some day.
    I will also try at starting my own project. My only problem is I can never think of what to make or start.

    The goal is to gain "fluency" in fundamentals of your chosen programming language and basic control flow constructions etc.
    So does this mean that you think I should become fluent in one language before I move onto another? Or should I just try to learn as many as possible? And as much as possible?

    though they got the technical concepts mostly all right, they were overwhelmed by great amount of errors in their simplest programs, which they seemed to be unable either to avoid or to trace and fix afterwards...
    What exactly could I do to fix this problem if I ever approached it in the future???

    I really do appreciate you helping me. If there is some way I can keep in contact with you incase I have any further questions or I need any help?

    Again THANK YOU!!!
  14. #8
  15. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2013
    Location
    Saint-Petersburg, Russia
    Posts
    237
    Rep Power
    29
    But I hope with time that I will be able to get to this level. But do you know of any other ways I can gain experience on my belt as a noob.
    Oh, you should not worry about it much. When you'll be on this level, you perhaps will not need it.

    The most important step in gaining experience would be your first official full-time job, where you'll learn a lot of things (and many of them beyond programming languages).

    Currently just press on practicing your chosen languages and writing some simple applications and projects. Participate in discussions on forums to get the idea of what are people doing in industry. Try to answer other's questions. By and by you'll see that you already gain some basic experience.

    That is when you'll post your CV to some job-offering web-site and try to get some job. The first time would not be easy perhaps - but what is important, if you will be invited for interview, you'll get much useful information here. Even if you will not be offered a position and salary, you will learn what things more you need to learn - and so after several interviews you will be invited at last.

    After you'll get your first job you will be able to understand the industry much better and decide yourself where you want to move further.

    Be sure, having no industrial experience is not a sin which prevents you from getting the first job. All people were at this level somewhere in the past.

    My only problem is I can never think of what to make or start.
    This is the sign that you currently need more practice in technical basics - learning languages and logic.

    I fear I could not give more precise advice not knowing your precise level. If you want try to remember and describe what kinds of programs you have written, which looked easy or hard to you?

    I of course can propose some basic programming problems which you can use to test yourself, but as I remember you've told that you have some experience in Python already, so perhaps you have already overcame the lowest stairs of this ascend.

    So does this mean that you think I should become fluent in one language before I move onto another?
    You definitely need not try to learn "as many languages as possible" - for the beginner it is just the waste of the time.

    However, if for some task (for example, for web-development) you need to be acquainted with a "stack" of instruments (like Python + MySQL + HTML + CSS as minimum) - of course you will need to learn the full of this "stack" by and by.

    At the same time, since Python could be substituted with PHP in this stack, it is not necessary to learn both PHP and Python at once. Learn what you like more (though of course you can try shortly both of them to see what you really like).

    What exactly could I do to fix this problem if I ever approached it in the future???
    Now it is sufficiont only to be aware about the problem of lacking knowledge of algorithms and data structures - if at some point you'll feel that your skills in this direction are insufficient, there are a lot of books - and what is more - several "competitive programming" web-sites, where you can train your skills by solving short problems simultaneously with thousands other people etc.

    Average industrial programmer needs not to be among the tops of these sportsmen - however, it is quite useful to achieve first or second level in their ranks. Here are popular web-sites:

    TopCoder

    CodeForces
  16. #9
  17. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Nov 2013
    Posts
    9
    Rep Power
    0
    Have not read posts in thread don't have much time before work.

    My professor said to us in class, that a degree is always admired. but himself personally would never hire someone with just a degree (his preference). When he was hiring for his projects he would prioritize people with Github accounts.

    He told us his best employee at his work was a 25 year old man who literally thought in code. He had no degree just a Ton of forks from Github and a great mind. They hired him because of his impressive Github resume and he ended up being one of the most valued members on there team.

    Now obviously this doesn't apply to all employers but realistically computer programming has so many ways to gain experience that a degree is not everything and often not required.

    Hope this helps & hasn't already been mentioned (like I said I didn't read the thread)

IMN logo majestic logo threadwatch logo seochat tools logo