Difference between revisions of "Study Computer Science"

Kipkis (Kipkis | contribs)
(importing article from wikihow)
 
Kipkis (Kipkis | contribs)
m (Text replacement - "[[Category:S" to "[[Category: S")
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
These days, understanding how to use a computer is helpful in many areas of life, from work to school to socializing. Computer science is a field of study that takes computing to the next level, understanding not just how to use the computer but how the computer itself works, and how to make it do new things efficiently. More and more people are learning computer science and turning their knowledge into a lucrative career in fields like business, health care, engineering, and many others.<ref>https://www.cs.mtu.edu/~john/whatiscs.html</ref> If you are interested in learning more about computer science as a hobby or career, there are several ways you can get started.
+
These days, understanding how to use a computer is helpful in many areas of life, from work to school to socializing. Computer science is a field of study that takes computing to the next level, understanding not just how to use the computer but how the computer itself works, and how to make it do new things efficiently. More and more people are learning computer science and turning their knowledge into a lucrative career in fields like business, health care, engineering, and many others.<ref name="rf1">https://www.cs.mtu.edu/~john/whatiscs.html</ref> If you are interested in learning more about computer science as a hobby or career, there are several ways you can get started.
[[Category:Science]]
+
[[Category: Science]]
 
== Steps ==
 
== Steps ==
 
===Studying Computer Science as a Hobby===
 
===Studying Computer Science as a Hobby===
 
#Check out free online courses. If you cannot or don't want to attend an undergraduate program in computer science, you'll be pleasantly surprised at the availability of free coursework online.
 
#Check out free online courses. If you cannot or don't want to attend an undergraduate program in computer science, you'll be pleasantly surprised at the availability of free coursework online.
#*For example, you can sign up for computer science related courses on Coursera.<ref>https://www.coursera.org/ Coursera.org</ref>  
+
#*For example, you can sign up for computer science related courses on Coursera.<ref name="rf2">https://www.coursera.org/ Coursera.org</ref>  
#*You should also check out OpenCourseWare from the Massachusetts Institute of Technology.<ref> http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/</ref> It is a goldmine of information for people who want to have access to computer science materials at an academic level without paying tuition.  
+
#*You should also check out OpenCourseWare from the Massachusetts Institute of Technology.<ref name="rf3"> http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/</ref> It is a goldmine of information for people who want to have access to computer science materials at an academic level without paying tuition.  
 
#Choose a topic to research. Depending on how much you already know, you can choose topics that are of interest to you and research them online or in the library.
 
#Choose a topic to research. Depending on how much you already know, you can choose topics that are of interest to you and research them online or in the library.
#*If you are just starting out, you will want to read books, journal articles, or websites devoted to topics like computer hardware, the internet, and basic computer programming.<ref> http://math.hws.edu/web/department/cs_courses.html</ref>  
+
#*If you are just starting out, you will want to read books, journal articles, or websites devoted to topics like computer hardware, the internet, and basic computer programming.<ref name="rf4"> http://math.hws.edu/web/department/cs_courses.html</ref>  
 
#*As you learn about these basic topics, you will find areas that seem especially interesting to you that you can investigate further. Some of these more advanced topics include security, cryptography, Turing Machines and the Halting Problem, set theory, operating systems, hardware architectures, semaphores and concurrency, computer networks and network protocols, and databases and information modeling.  
 
#*As you learn about these basic topics, you will find areas that seem especially interesting to you that you can investigate further. Some of these more advanced topics include security, cryptography, Turing Machines and the Halting Problem, set theory, operating systems, hardware architectures, semaphores and concurrency, computer networks and network protocols, and databases and information modeling.  
#*You can also view do an internet search for the complete list of recommended topics by Professor Matthew  Might, who teaches computing at the University of Utah.<ref>http://matt.might.net/articles/what-cs-majors-should-know/M. Might, What every CS major should know</ref>
+
#*You can also view do an internet search for the complete list of recommended topics by Professor Matthew  Might, who teaches computing at the University of Utah.<ref name="rf5">http://matt.might.net/articles/what-cs-majors-should-know/M. Might, What every CS major should know</ref>
 
#Try programming. Basic computer programming is simple and easy to learn, and is a great gateway to more computer science knowledge. Plus, it comes in handy on job applications to have a working knowledge of programming, even if you don't have technical instruction under your belt.
 
#Try programming. Basic computer programming is simple and easy to learn, and is a great gateway to more computer science knowledge. Plus, it comes in handy on job applications to have a working knowledge of programming, even if you don't have technical instruction under your belt.
 
#*There are a lot of different programming "languages," or systems that use unique codes. If you don't know where to start, Python is a nice language for beginners. It's intuitive and easy to learn. You can also consider C or Java.  
 
#*There are a lot of different programming "languages," or systems that use unique codes. If you don't know where to start, Python is a nice language for beginners. It's intuitive and easy to learn. You can also consider C or Java.  
#*If you have tried imperative programming languages in the past, try learning functional languages such as Haskell.<ref>http://learnyouahaskell.com/ Online book: Learn you a Haskell for great good!</ref> These are more advanced than the basic languages.
+
#*If you have tried imperative programming languages in the past, try learning functional languages such as Haskell.<ref name="rf6">http://learnyouahaskell.com/ Online book: Learn you a Haskell for great good!</ref> These are more advanced than the basic languages.
 
#*Whatever approach you decide to take, you can do an internet search for articles or videos that will teach you all you need to know. In your search bar, type in the name of the programming method plus the words "beginner tutorial" (for example, "Java beginner tutorial").
 
#*Whatever approach you decide to take, you can do an internet search for articles or videos that will teach you all you need to know. In your search bar, type in the name of the programming method plus the words "beginner tutorial" (for example, "Java beginner tutorial").
  
Line 18: Line 18:
 
#Prepare in high school. If you  know early on that you have an interest in computer science, it is helpful to focus your high school curriculum on courses that will give you an advantage in college and in your career.
 
#Prepare in high school. If you  know early on that you have an interest in computer science, it is helpful to focus your high school curriculum on courses that will give you an advantage in college and in your career.
 
#*Try to focus on courses in mathematics, science, and computing.  
 
#*Try to focus on courses in mathematics, science, and computing.  
#*It is likely that you already gravitate toward these types of classes, but if not, ask yourself whether computer science is really right for you. Computer scientists must have an aptitude for science, math, and information, and the ability to problem-solve and think logically. <ref>https://www.cs.mtu.edu/~john/whatiscs.html</ref>
+
#*It is likely that you already gravitate toward these types of classes, but if not, ask yourself whether computer science is really right for you. Computer scientists must have an aptitude for science, math, and information, and the ability to problem-solve and think logically. <ref name="rf1" />
 
#*Maintain a good grade point average and standardized test scores so you can apply to top programs in the field.  
 
#*Maintain a good grade point average and standardized test scores so you can apply to top programs in the field.  
 
#Apply for an academic program in computer science. This is the best way to begin a serious study of computer science, preparing you for a career in the field.  You'll have access to the best resources and experienced teachers.
 
#Apply for an academic program in computer science. This is the best way to begin a serious study of computer science, preparing you for a career in the field.  You'll have access to the best resources and experienced teachers.
Line 24: Line 24:
 
#Get relevant work experience. Having experience in jobs that utilize some of the basic concepts of computer science can help you learn more about the discipline and also bolster your resume so that you will be able to find a good job when you get out of school.
 
#Get relevant work experience. Having experience in jobs that utilize some of the basic concepts of computer science can help you learn more about the discipline and also bolster your resume so that you will be able to find a good job when you get out of school.
 
#*Try to find part-time, summer, or work-study experience related to computing, engineering, mathematics, or other technological fields. You may not get hands-on experience with actual computer programming in your early stages of work, but even being in the same room with computer scientists will allow you to make connections, ask questions, and learn more.  Consider working as a lab assistant or a library aid.
 
#*Try to find part-time, summer, or work-study experience related to computing, engineering, mathematics, or other technological fields. You may not get hands-on experience with actual computer programming in your early stages of work, but even being in the same room with computer scientists will allow you to make connections, ask questions, and learn more.  Consider working as a lab assistant or a library aid.
#*Get an internship that will give you hands-on experience with computer science, for instance at a software development company or at a computer help desk at a major corporation or university.<ref> https://collegegrad.com/careers/computer-programmers</ref>
+
#*Get an internship that will give you hands-on experience with computer science, for instance at a software development company or at a computer help desk at a major corporation or university.<ref name="rf7"> https://collegegrad.com/careers/computer-programmers</ref>
 
#Take classes and get your degree. Most computer scientists get at least a bachelor's degree, but some fields will hire a candidate with only an associate's. In general, an associate's degree takes two years and a bachelor's degree takes four.
 
#Take classes and get your degree. Most computer scientists get at least a bachelor's degree, but some fields will hire a candidate with only an associate's. In general, an associate's degree takes two years and a bachelor's degree takes four.
 
#*Your coursework will emphasize math, science, and technology, but you should also be sure to take courses in English (or other native language in the country where you study and plan to work), writing, and the humanities.
 
#*Your coursework will emphasize math, science, and technology, but you should also be sure to take courses in English (or other native language in the country where you study and plan to work), writing, and the humanities.
#Find a career in computer science. There are many options for what to do with a degree in computer science, including systems analyst, database administrator, hardware engineer, data scientist, help desk technician, security specialist, and many others.<ref>http://www.itcareerfinder.com/it-careers/computer-programmer.html</ref>
+
#Find a career in computer science. There are many options for what to do with a degree in computer science, including systems analyst, database administrator, hardware engineer, data scientist, help desk technician, security specialist, and many others.<ref name="rf8">http://www.itcareerfinder.com/it-careers/computer-programmer.html</ref>
 
#*Look online on career websites, classifieds, or the websites of particular companies. Many corporate websites list open positions in computer science under the category of "Support" or "IT" (Information Technology). Look for an entry level position that sounds interesting to you!
 
#*Look online on career websites, classifieds, or the websites of particular companies. Many corporate websites list open positions in computer science under the category of "Support" or "IT" (Information Technology). Look for an entry level position that sounds interesting to you!
 
#*You can also ask professors and work supervisors for job recommendations and help locating open positions.  
 
#*You can also ask professors and work supervisors for job recommendations and help locating open positions.  
#Continue your education. Remember that even after you've found a job in computer science, computers will constantly evolve and change, and so must your skills in order for you to remain relevant and keep your job secure.<ref> https://collegegrad.com/careers/computer-programmers</ref>
+
#Continue your education. Remember that even after you've found a job in computer science, computers will constantly evolve and change, and so must your skills in order for you to remain relevant and keep your job secure.<ref name="rf7" />
 
#*Many big tech companies offer continuing education courses, seminars, or conferences. You can also enroll in night classes at a local college, or ask your employer if they will help subsidize courses you can take from home.  
 
#*Many big tech companies offer continuing education courses, seminars, or conferences. You can also enroll in night classes at a local college, or ask your employer if they will help subsidize courses you can take from home.  
 
#*It’s a good idea to subscribe to technology blogs, magazines, or listservs in order to keep up with changing protocols and languages.
 
#*It’s a good idea to subscribe to technology blogs, magazines, or listservs in order to keep up with changing protocols and languages.
Line 36: Line 36:
 
===Studying Computer Science in Graduate School===
 
===Studying Computer Science in Graduate School===
 
#Decide if an advanced degree is necessary. Getting an advanced degree (such as a Master's or Doctorate) is a time-consuming and costly choice, so before you enroll, be sure you are making the right choice.
 
#Decide if an advanced degree is necessary. Getting an advanced degree (such as a Master's or Doctorate) is a time-consuming and costly choice, so before you enroll, be sure you are making the right choice.
#*Of all fields of study, computer science is one of the most likely to pay off. Advanced degree holders in computer science are in demand, so if you plan to hunt for a better-paying job and you're willing to move (particularly to a large city), an advanced degree might be a good way to get there.<ref>http://www.forbes.com/sites/jacquelynsmith/2011/06/06/the-best-and-worst-masters-degrees-for-jobs/ </ref>  
+
#*Of all fields of study, computer science is one of the most likely to pay off. Advanced degree holders in computer science are in demand, so if you plan to hunt for a better-paying job and you're willing to move (particularly to a large city), an advanced degree might be a good way to get there.<ref name="rf9">http://www.forbes.com/sites/jacquelynsmith/2011/06/06/the-best-and-worst-masters-degrees-for-jobs/ </ref>  
 
#*However, if you are happy in your current job and have no desire to look for another position, it might be wise to not pursue another degree. If you need to learn another programming language or further your skills, your current employer might have policies in place to pay for continuing education seminars or other ways for you to further your knowledge without another degree.
 
#*However, if you are happy in your current job and have no desire to look for another position, it might be wise to not pursue another degree. If you need to learn another programming language or further your skills, your current employer might have policies in place to pay for continuing education seminars or other ways for you to further your knowledge without another degree.
 
#Complete an undergraduate program. Before starting on a Master's or Doctorate, you need to have a Bachelor's under your belt. It is ideal if the undergraduate degree is in a field related to computer science, mathematics, or another closely related discipline.
 
#Complete an undergraduate program. Before starting on a Master's or Doctorate, you need to have a Bachelor's under your belt. It is ideal if the undergraduate degree is in a field related to computer science, mathematics, or another closely related discipline.
 
#*However, with high enough grades and test scores, you might be accepted to a graduate program even without having focused on computer science for your bachelor's degree, particularly if you can show a long-standing interest in and aptitude for technology.
 
#*However, with high enough grades and test scores, you might be accepted to a graduate program even without having focused on computer science for your bachelor's degree, particularly if you can show a long-standing interest in and aptitude for technology.
#Take the appropriate standardized tests. For most graduate schools in the United States, you will have to take the Graduate Record Examination (GRE) test, which tests your analytical writing, quantitative, and verbal/reading comprehension skills.<ref>http://www.princetonreview.com/grad/gre-sections</ref>
+
#Take the appropriate standardized tests. For most graduate schools in the United States, you will have to take the Graduate Record Examination (GRE) test, which tests your analytical writing, quantitative, and verbal/reading comprehension skills.<ref name="rf10">http://www.princetonreview.com/grad/gre-sections</ref>
 
#*For an advanced degree in computer science, you will need to show an aptitude for numbers, so your quantitative score will most likely need to be excellent. High scores in the other areas are also important for competitive program admission, but are likely to be slightly less important than quantitative scores.
 
#*For an advanced degree in computer science, you will need to show an aptitude for numbers, so your quantitative score will most likely need to be excellent. High scores in the other areas are also important for competitive program admission, but are likely to be slightly less important than quantitative scores.
 
#*For example, at the University of Chicago's Master's in Computer Science program, successful applicants generally score at least in the 50th percentile or above on the verbal section, and in the 80th percentile or above on the quantitative section.
 
#*For example, at the University of Chicago's Master's in Computer Science program, successful applicants generally score at least in the 50th percentile or above on the verbal section, and in the 80th percentile or above on the quantitative section.
#*If you're applying to a United States program from overseas, you may also have to take the Test of English as a Foreign Language (TOEFL).<ref>https://www.ets.org/toefl/ibt/about</ref> Check with the programs you are interested in to see what you need to score for admission.
+
#*If you're applying to a United States program from overseas, you may also have to take the Test of English as a Foreign Language (TOEFL).<ref name="rf11">https://www.ets.org/toefl/ibt/about</ref> Check with the programs you are interested in to see what you need to score for admission.
 
#Apply for graduate programs.  Keep in mind that you may not get into your first choice school, so having a backup plan or applying to several schools is usually a good idea.
 
#Apply for graduate programs.  Keep in mind that you may not get into your first choice school, so having a backup plan or applying to several schools is usually a good idea.
 
#*An application usually consists of application form, a resume or curriculum vitae, a letter of interest that explains why you think the program is a good fit for you, letters of reference, and a of your undergraduate transcript.
 
#*An application usually consists of application form, a resume or curriculum vitae, a letter of interest that explains why you think the program is a good fit for you, letters of reference, and a of your undergraduate transcript.