What is the best area of study to get into with computer coding focus.
I am currently teaching myself Lua coding and would love a career focusing on coding. What areas of study are available and what should I be exploring when choosing a college and career #computer-software #computer-programming #coding
4 answers
Sreenivasa’s Answer
I would suggest you to start with C, C++ if you are a beginner and also it helps to learn basics in the computer programming (coding) which is very structured and helpful. Then see if you can learn advanced skills like Java, Advanced Java, node JS etc. as per your interest and time. I would strongly suggest you to be on latest and greatest side of the Technology side always. - Thanks.
G. Mark’s Answer
I'll give you my opinion on the "best area of study", but I'll start with what I think is the most useful answer to you personally. I've been a computer engineer at various levels from individual contributor to directing product departments for more than forty years and I've seen computer science grow from an oddity and an amusement to sucking up just about every aspect of society and its endeavors. So let me just say that just about any area that you're interested in from engineering to cooking to clothing design can use some form of coder. So I'd just say you could get into just about any area of study and eventually apply coding to it.
That all being said, there's nothing preventing you from taking coding courses online, getting books on various languages and digging in. Learn C, C++, any other flavor of "C" language, Python, BASH, any flavor of Linux or Unix and use them to do some fun stuff. IOW, get your feet wet. You probably already know this and may have already done it.
Now my opinion as to the "best" area to get into at this moment is Artificial Intelligence. Specifically the use of Machine Learning and Deep Learning using the ever-increasing set of Big Data being generate by just about everything connected to the Internet of Things. This stuff is exploding. And here's the really cool part. You can get this stuff largely for free. Yes, there are AI platforms such as Tensorflow and tutorials for using it all over the internet. Yes, that's what I'm saying. It's free, it's easily available, and you're likely to find out exactly what's the most fun for you. And what you're likely to be very good at.
Finally, I'd like to encourage you to get into data analytics and support applications for viewing data. Look at a tutorial for Splunk and look over the various apps and "workbench" platforms for view SQL and data structures. How? Type in "SQL" and "tutorial". And you're on your way.
Jeni’s Answer
I have been a software engineer for over 20 years. I have a bachelors degree in Philosophy and a Masters in Business and Accounting.
The industry is very different than what it was 20 years ago, though. I do know and work with plenty of individuals from all sorts of educational backgrounds, but it is getting more challenging to break into software engineering jobs unless you have a background in Math, Statistics and/or Computer Science.
It is my opinion that, with all of the upcoming emphasis in Machine Learning, Math and Statistics will serve you very well. Supplement that with some Python and Java and you should be pretty well set.
Hemraj’s Answer
TABLE OF CONTENTSINTRODUCTION1ELEMENTARY2Why Start in Elementary SchoolResources for Coding Basics MIDDLE SCHOOL3Using Games to LearnMy First WebsiteOther ResourcesHIGH SCHOOL AND COLLEGE PREP4College Prep First StepsProgramming Language Must-HavesCollege Prep ResourcesCONCLUSION5
INTRODUCTION
Computer scientists play a central role in our technological infrastructure. They develop hardware, software and other applications for use by the military, businesses and average consumers. This has made computer science one of the fastest-growing career fields in the U.S. today, with some occupations, such as software engineer, expected to grow an estimated 22 percent from 2012 to 2022. While this means tremendous opportunity for students and young professionals interested in the field, it also means increased competition, both at the college level and in the job market.
Many experts in computer science education tout skill development before college as the key to success. Students as young as six and seven are learning the logic behind computer programs and, in some cases, how to create simple programs of their own. Yet formal computer science learning remains a rare commodity in K-12 curricula. In 2011, just five percent of high schools across the country offered an Advanced Placement test in the subject. This gap has forced students to seek computer science education elsewhere.
The following guidebook helps students and parents identify and understand the multitude of opportunities available for learning computer science before college. Key elements include:
An in-depth look at why computer science is important to learn at the primary and secondary levels.A breakdown of computer science information and resources at each level: elementary school, middle school and high school.A detailed look at college prep. Specifically, how high school students can ready themselves for advanced computer science study at the post-secondary level.
ELEMENTARY
Young children have a natural gift for learning a foreign language. Advocates for teaching Spanish or Chinese in elementary curricula assert that kids soak up concepts and vocabulary more organically than adults. Computer programming, aka “coding”, includes very similar elements and incorporates multiple languages. Coding also facilitates student collaboration, creativity, design, presentation and problem solving skills. This has many parents asking the question: Why aren’t kids learning basic computer science and programming in school? Common Core and No Child Left Behind may seem like barriers, but alternatives exist.
Why Start in Elementary School
Teachers, administrators and principals interested in computer science and coding can look to open-source curriculum to help bring volunteer-based programs into their schools. CodeEd, a non-profit volunteer program that teaches principles of computer science and programming to girls in New York, Boston and San Francisco, starts as early as grade six. Its founders understand that an interest in computer science and an I-can-do-this attitude should be nurtured early.
“We’ve seen that children clearly have the capacity to learn complex computer science concepts from an early age,” Angie Schiavoni of CodeEd says.
Computer science can be introduced to students at a young age, but the concepts must be simple to understand, reports the Computer Science Teachers Association. Charlie King of CLEARLINK suggests that kids should start coding and delving into computer science as soon as they show an interest. Specific age may not be as important.
“Fourth or fifth grade is a fun place,” he says. “They have wild imaginations and don’t believe in limitations. My son is in fifth grade and he is loving it.”
Here are a few reasons to add computer science and coding to education at the elementary-education level.
By the year 2020, there will be an excess of 100,000 jobs in computing available beyond the number of college graduates skilled to work in the field, reports The Educators Room. Most kids are high functioning when it comes to use of computers, yet only 57 percent of elementary schools have wireless Internet connectivity, according to the Computer Science Teachers Association. Resources for Coding Basics
Many different organizations offer coding education for young children. Whether summers camp or online programs, they provide opportunities for children to develop practical computer science knowledge and skills.
“The best way for young children to learn programming is just for them to start doing it in a very concrete way,” Angie Schiavoni of CodeEd says. “It’s kind of like the best way for kids to play soccer is not to just learn how to dribble or just learn to pass the ball, but to get out on the field and play soccer, a lot. Then you can fine tune your skill set later.”
Like CodeEd, Scratch gives young students the chance to create interactive stories, animations and games, and then share them online. While designed for kids ages eight to 16, the program is appropriate for all beginning coders, as it uses visual representations to teach foundational mathematical and computational ideas. The site has sections for kids, of course, as well as for parents and educators. Since conception, an estimated 800,000 students have shared more than a million Scratch projects.
Scratch and CodeEd represent just two of the many online resources for primary schoolers interested in technology. The following resources may also prove helpful for students and parents:
Alice.org offers a 3D programming environment to help kids across all ages learn about object-oriented programming. Downloads, licensing and tutorials are available. Codecademy.com offers anyone the opportunity to learn how to code for free using simple examples and methods.Codepupil.com uses simple games, like its “Code Stitch”, and exercises to teach kids to code with HTML and CSS.Code.org teaches the basics in computer science through a tutorial that uses drag-and-drop programming. A K-8 Intro to Computer Science course 15 to 25 hours long is available to kids as young as age six.ComputerScienceForKids.com offers four different language-programming tracks for home-schooled students as well as curriculum for teachers that can be used in the public classroom.DaisyTheDinosaur is an iPad app that introduces kids ages five to eight basic logic and allows them to drag one-word commands into the programming space. Hackety.com teaches students the basics of the Ruby programming language, which is used for applications and websites. Online courses include An Introduction to Ruby and An Introduction to Programming.Kodable is an iPad game to teach children as young as age five how to develop coding skills. Learning tools are also available for students as advanced as the 12th grade.PluralSight knows that kids are already experts in technology and offers free courses such as Teaching Kids to Program and Learning to Build Apps with App Inventor.Scratch.MIT.edu offers a visual programming language developed by the MIT Media Lab, allowing kids to build interactive animations, games and stories. More than 4.9 million projects have already been shared on the site.TeachKidstoProgram.com provides suggestions for websites, software, hardware and books, such as “Python for Kids” by Jason Briggs, to use to develop children’s interest in programming. TeamTreeHouse.com provides the chance to learn about web coding and design through more than 1,000 videos created by expert instructors. Knowledge is tested through interactive coding challenges and quizzes.Udemy.com provides a number of courses for children including a fairly inexpensive Kids Coding-Beginner HTML that is tailored toward young learning styles and includes a final project.
In addition to fueling interest, founders of programs such as CodeEd and Scratch hope their efforts lead to long-term growth in the field.
“It’s time that computer science be taught on par with other scientific disciplines like biology, physics and chemistry,” says Schiavoni. “But we still have a long way to go to catch up. Estonia recently implemented a national program where 100 percent of first graders will be required to take computer science classes.”
MIDDLE SCHOOL
For students who missed the chance to code in K-5, middle school offers a wider range of opportunity. Slowly but surely, middle school teachers are incorporating computer science basics into the curriculum. It may not be teaching specific languages at this point, but merely introducing underlying concepts and fundamentals.
“The goal is to learn the theory of programming,” says Charlie King of CLEARLINK. “If you understand how to manipulate things with IFs and Loops, it doesn’t matter the language. Basic HTML/CSS/JavaScript is easy and allows you to make cool stuff at the simplest of levels. That can spark desire. If that grabs their attention, C++/Java/PHP or other more powerful languages are common in real world, and fun to play with.”
Kids at this age often develop an interest in computer science by creating video games or building their own websites. These types of projects use creativity to introduce and develop core skills.
“The message needs to be that computer science is about creating and building beautiful and useful things,” Angie Schiavoni of CodeEd says. “For example, web development, which we teach in CodeEd classes, is about creativity and self-expression, not just about learning a bunch of scary-looking tags.”
By the time students enter high school, they won’t be afraid of computer science. Instead, they’ll be in a position to embrace it, and even pursue advanced study.
Using Games to Learn
Kids in middle school love to game, whether by themselves or online. Batman, Tomb Raider and Call of Duty have made countless appearances under Christmas trees or at birthday parties. As a parent or teacher, gaming may seem a distraction from schoolwork, unless, of course, it becomes an educational opportunity. The following resources give middle-schoolers the chance to learn what happens behind the screen:
CodeAvengers.com allows users to create games in JavaScript, and offers tutorials such as Intro to Making Games, Intro to Graphics and Intro to Programming.GameInstitute.com provides opportunities for game programming, game art and animation and to learn more about the Unity platform used in game creation.The Hour of Code tutorial sponsored through the University of Colorado at Boulder uses drag-and-drop programming to help kids create a 3D video game. The program is now being used in many Boulder-based middle schools.PlayBasic.com offers a 2D programing language and a variety of graphical features, such as image effects and mapping, for creating games. StormTheCastle.com provides details about what goes into programming a game and what students can do to begin to prepare themselves for a career. A free tutorial is also available to make and design a game.TeamLiquid.net takes a look at some of the different careers that could be available in gaming, including programming, artistry, designing and engineering.TwoLivesLeft.com/Codea/ is an application that can be downloaded for an iPad and lets games and simulations be created using the Lua programming language.YouthDigital.com is geared toward students ages eight to 16 and offers online classes in creating apps and games. My First Website
Web development is another great way to practice essential computer science and coding skills. Students can begin to learn Hyper Text Markup Language (HTML), the backbone of a webpage, as well as JavaScript and Flash to add dimension. Here are four resources for middle school students looking to build their very first website:
CodeAvengers.com provides opportunities for students to build websites and apps using HTML5 and CSS3. Python courses are expected to become available in 2014.CodeEd.org sends volunteers into a classroom using a provided curriculum and teaches girls how to code by building a website.Lissaexplains.com provides tutorials to help kids create their own websites with HTML. Perl scripts and .htaccess files are available for more advanced users.SMPlanet.com offers a seven-step tutorial for creating a website, including the basics of HTML tags and viewing and editing pages. Other Resources
Game design and web site development are just two of the many computer science options available to middle school students. Have a child who likes to take things apart? Learning the basics of computer hardware may be the logical next step. Have a son or daughter interested in hacking (or hopefully how to prevent it)? Software development and cyber security are excellent to learn about at the middle school level. For more ideas and information, check out these online resources:
Edutopia provides its “7 Apps for Teaching Children Coding Skills” including GameStar Mechanic, Hopscotch and Scratch.The Khan Academy offers Drawing and Animation, which makes use of JavaScript and the ProcessingJS library to animate and draw.The “Make Your Own Flappy Bird” tutorial allows you to create you own game in as little as 20 minutes and is available through learn.code.org.Polygon offers a story called “My Kids are Learning to be Better People by Learning How to Code Games.”President Barack Obama emphasizes computer science skills in this short video on YouTube that helped to kick-off the 2013 Hour of Code campaign. ReadWrite offers an article called “How to Raise the Next Zuckerberg: 6 Coding Apps for Kids.” Suggestions include trying out Alice and Code Monster.ReadWrite reports on which groups are helping students learn about programming in the article “Schools Aren’t Teaching Kids to Code; Here’s Who is Filling the Gap.”
HIGH SCHOOL AND COLLEGE PREP
Just 30,000 students took the Advanced Placement test in computer science in 2013, according to Education Week. Less than 20 percent of those test-takers were female, about eight percent were Hispanic and less than 3 percent were African-American. Also frightening may be that in 11 states, no African-Americans took the exam at all, and in eight states, no Hispanic students took the exam.
Recognizing the need to draw students into the field, The College Board has decided to launch a new class called AP Computer Science: Principles, set to launch in the 2016 – 2017 school year. Where offered, it will introduce students to programming, but also give them a broad understanding of computing and its many applications.
“When I was in high school, there was very little available to students with vocational interest in technology,” says Justin Rohrman, senior software tester at Sharable Ink. “From what I gather, though, many public schools are now offering technology specific courses. Pursuing that will help you get a little ahead of the curve. I also encourage getting experience in the open source community with groups like Wikimedia Foundation (Wikipedia) and Mozilla.”
College Prep First Steps
Perhaps the best way to prep for an undergraduate degree in computer science is to cultivate knowledge and skills in mathematics and laboratory science.
“Having a firm grasp of mathematics and science will help if the student wants to pursue a degree even if they never end up using it in the ‘real world,'” says Chris Martino of SimpiVity Corporation. “Most CS programs are heavy in these areas with requirements in calculus, statistics, physics, etc.”
In addition to math and other lab sciences, high school students interested in computer science should explore as many specialties as possible. Not only to better understand the landscape, but to plan out college-level coursework. In addition to general computer science and programming, for example, some high schools have started to offer classes in database management, information assurance and security and fundamentals of information technology (IT). While still rare, they are on the rise.
“My high school offered three software development classes, and I took all three,” said Bradley Stewart of Shareable Ink. “There was a web design course, visual basic course and a C++ course. I would most definitely recommend them where offered, and would openly encourage all high schools to provide them. A focus on math is highly recommended throughout one’s high school education if planning to pursue software engineering.”
Many resources already mentioned in this guide provide opportunities for students in high school to pursue computer science. The options are countless, particularly online, and include sources such as Codecademy, Code.org, Coursera, Udacity and Udemy. Justin Rohrman of Shareable Ink has another suggestion.
“There is a fantastic program for young people called SummerQAmp,” he says. “This program is focused on developing real tech skills and exposing people to them before college.”
Finally, when researching CS undergraduate programs, high school students may want to consider online colleges that provide free laptops. While laptops are useful for any student, they are absolutely essential for CS majors – and every penny saved helps.
Programming Language Must-Haves
Students have many choices when it comes to programming languages. Some learn the basics of several languages as they progress from high school to college, while others concentrate on a single language used for a specific outcome. Examples of the latter include compiled languages, declarative languages, object-oriented languages, scripting languages and many others. The following seven programming languages represent the most common (and most important) a student can learn in high school:
C++ is a programming language developed out of Bell Labs and popular for its graphical applications. C++ adds objected-oriented features to its predecessor, C.HTML is a hypertext markup language that is used in creating World Wide Web documents.JavaScript was developed by Netscape and is used in creating interactive websites. Although similar to Java, it has many of its own unique features.Perl stand for Practical Extraction and Report Language and uses a syntax in its scripting language that is similar to C/C++.PHP, standing for hypertext preprocessor, is used in server-side scripting and web development and is open-source and embeddable in HTML.Python is an object-oriented programming language with an open-source code that received its name from “Monty Python’s Flying Circus.”Ruby is an object-oriented programming language that can be used for everyday programming and testing prototypes. College Prep Resources
High school students may be on their own when it comes to finding opportunities for computer science and coding instruction. If they can’t find programs at their schools, they may be able to advance their knowledge through in-depth online resources or intensive summer camps. These often provide access to seasoned instructors either remotely or in-person:
Codenow.org provides opportunities for teenagers in low-economic areas to understand how to program through project-based learning. Nearly half of its alumni are female.Girls Who Code offers a summer immersion program in computer science focused on mobile development, robotics and web design. Girls gain experience through demos, lectures and mentorships.Hack Reactor offers a 12-week boot camp (with a hefty price tag) to hone software engineering skills. Previous coding experience is recommended.Metis is a 12-week camp taught by instructors in Boston that focuses on HTML, CSS and Ruby on Rails. The camp is expensive, but makes scholarships available to women, minorities and veterans.Silicon Valley Code Camp is offered free of charge and run by developers for developers to address topics such as branding or legal issues.ScriptEd.org is another organization providing programming education in low-income areas through partnerships with volunteers.Square expanded its coding camp from college-only to high school girls in Silicon Valley and provides instruction through Square engineers and additional teachers.The SummerQAmp program was founded in 2012 as part of the White House Summer Jobs+Initiative and was the brainchild of GroupMe co-founder Steve Martocci and, yes, rocker-turned-actor Jon Bon Jovi and others. It offers internships to students who are interested in quality assurance, one of the many fields of computer science.AmplifyCS is the first AP Computer Science MOOC offering blended online instruction with support, all free of charge. Students learn about Java and should be prepared to take the AP exam in computer science.Coursera.org offers Beginning Game Programming with C# which includes the use of Unity, a popular game engine among indie developers.DigitalMediaAcademy provides instruction in app development, game design and iPhone applications at camps available all over the U.S. Summer camps specifically available at the University of Chicago include Game Programming, Java Programming and Programming 101.Openclassroom.stanford.edu is operated by Stanford University and offers free classes such as Design and Analysis of Algorithms, and Introduction to Databases and Practical Unix. The Institute for Mathematics and Computer Science offers AP classes and university-level coursework in computer science as well as help preparing for the AP Computer Science and AP Calculus exams.The University of California Online offers Computer Science for Science, Mathematics, and Engineering I that may be of interest to advanced high school or college transitioning students.
CONCLUSION
Remember, there are few reasons for waiting until college to begin developing your computer science and coding skills. The connected world is the world of the future and whether you decide to strictly work in computer science and programming, or cross over into fields such as health care or space science, you can help build and design the programs and technologies. The exciting thing is that many of these technologies remain to be seen. It’s already clear that programing and coding are the basis for so many new and progressive ideas, which begs the question: Are you ready to shape the future?
5 Things to Learn About Computer Science Degrees
Computer science degrees come with a common misconception, which often discourages students from pursuing a degree: They’ll turn you into an isolated code cruncher. That’s not really the case.
Computer science graduates qualify for a wide range of positions and careers. However, to ensure you have the right mix of skills and hands-on experience to get one, do your homework and decide on a career path before selecting a technical specialty or program.
What tips for success can you give to those seeking a degree in computer science? Let us know in the comments below.
“The gap between the classroom and the workplace has been a problem,” acknowledges Dr. H.E. Dunsmore, associate professor of Computer Science and chair of the College of Science Undergraduate Education Policy and Curriculum Committee at Purdue University.
Purdue’s Computer Science department has taken steps to make more students aware of the versatility of CS degrees. His undergraduates have the opportunity to explore various careers and select an educational track that suits their preferences.
“Computer science majors take a course during their freshman year that explains the various career options and what they’ll actually do all day,” explains Dunsmore. “They also have the opportunity to mix with our corporate partners, hear about different job opportunities and then select from a broad array of educational tracks in everything from graphics to security, which may require less math or programming.”
If you’re interested in CS, consider these five things:
Know Yourself: Do you like working solo or on a team? Do you want to work with cutting-edge technology or support a business unit in a private sector company? The reality is you can be a DBA, business analyst, software engineer, researcher or computer systems analyst. However, you need to choose a career and curriculum that leverages your academic strengths. Currently, less than 40 percent of U.S. undergradscomplete science, technology, engineering and math programs and graduate with a degree.“If you want to pursue a career in software engineering, then you’ll have to complete rigorous coursework in math and programming,” says Dr. Larry Davis, professor at the Institute for Advanced Computer Studies and chair of the Computer Science Department at the University of Maryland.
Select a Sustainable Career: Employment in all computer occupations is expected to increase by 22 percent through 2020, but some IT fields will fare better than others, according to the Bureau of Labor Statistics biennial update of employment projections. Tech support and programming are still being sent offshore, so select carefully. “Don’t wait until you’re a junior or senior to attend campus job fairs,” suggests Davis. “Go when you’re a freshman so you can meet employers and hear about their future openings.
Acquire Marketable Skills: It might be better to major in Business Administration and minor in Computer Science if you want to work in the private sector because the cloud is transforming IT and creating hybrid roles across the enterprise, according to Gartner. Most computer science students spend time building their own applications and systems but businesses don’t necessarily need that type of expertise. Hot skills include systems integration, business intelligence, cloud computing SQL, .Net, C, mobile languages and Java.
Get Hands-On Experience: You can’t learn teamwork or business fundamentals by reading a text book. Participate in student projects, volunteer work, campus committees and internships so you can acquire hands-on technical experience, business acumen, leadership and communication skills.
Persevere: It takes most CS students six years to earn a degree since many initially drop out of math and programming classes, yet manage to succeed the second time around.