7 answers
Asked
785 views
When going into computer programming what should I expect?
I'm a freshman and looking into computer sciences.
Login to comment
7 answers
Updated
David’s Answer
I would say that this career is well suited for abstract thinkers. Yes, there's a lot of formalism and math involved at times, but a lot of what makes great software comes down to how well you can communicate an idea to both humans and computers. Humans have to be able to understand what was written in order for it to be maintained, extended, or fixed (as bugs are extremely common).
The skills you'll learn involve breaking down larger problems into smaller ones and solving and testing those solutions as you go, later composing the smaller solutions into a larger one. It really is a lot of fun!
The skills you'll learn involve breaking down larger problems into smaller ones and solving and testing those solutions as you go, later composing the smaller solutions into a larger one. It really is a lot of fun!
Updated
Richard’s Answer
Get ready for a lot of math, logic, and breaking problems down into manageable parts. Computer programming is essentially about learning various communication methods. If learning languages isn't your thing, you might find it challenging to meet the requirements of understanding commands, parsing, and other aspects of computer programming. All tasks in computer programming require you to learn a programming language, and since there are many, the ability to quickly adapt to new ones is crucial.
Updated
Rokeya’s Answer
Hi Lee,
Computer programming is a challenging but rewarding field. As a fresher in computer science, you can expect to learn about programming languages, data structures and algorithms, and software engineering principles. You will also likely learn about other areas related to computer programming, such as computer architecture, operating systems, and networking.
Computer programming is a challenging but rewarding field. As a fresher in computer science, you can expect to learn about programming languages, data structures and algorithms, and software engineering principles. You will also likely learn about other areas related to computer programming, such as computer architecture, operating systems, and networking.
Updated
Steven’s Answer
Expect a constantly changing job. Languages, support tools, etc. change often. Also expect to use a lot of logical thinking of you're programming anything that has a flow of functionality.
Updated
Celeste’s Answer
Hello!
I recently graduated with a BS in Computer Science. Here's a little about my experience:
1) I spent at least 20 hours on each CSE lab. Those things can be tedious
2) CSE is a huge area. There are lots of different things you can do. I recommend taking a variety of classes, and then focusing on the type of classes you most enjoy. Example: I am a back-end developer. In college, I took every single systems programming class that was offered. That was my favorite kind of computer science, and I ended up in a job where I got to do just that.
3) balance. balance. balance. Do not take more than 2 CSE classes. you have time. take a balanced schedule where you use both your left and right side of the brain. It's harder to get burnt out when you have variety.
4) the hardest class I took was: distributed systems. Boy was it incredibly interesting, but man were the labs almost impossible to debug.
5) my favorite class i took: mediaeval and early modern literature (i know, not related to STEM at all. The professor was great, and I love old literature so it was a great way to build variety into my schedule)
6) most useful class: programming languages. why? because most companies have their own internal languages. This class was all about what makes a language. Because of it, I understand CSE language composition better, and it is easier for me to pick up a CSE language.
7) Foreign languages are also great for CSE (for basically the same reason as above) -- learning how to learn a language is incredibly useful when you join the workforce in CSE and have to learn a lot of company-specific stuff. (and they're a great way to create variety in your schedule). You can even take a fun, relatively useless language like Danish (there are 5 million Danes in the world -- I am one of them) because Danish and English both descended partially from old Norse, there's a lot in common between the two, making pronunciation much more difficult than vocabulary (unlike Spanish and it's 7 tenses)
I recently graduated with a BS in Computer Science. Here's a little about my experience:
1) I spent at least 20 hours on each CSE lab. Those things can be tedious
2) CSE is a huge area. There are lots of different things you can do. I recommend taking a variety of classes, and then focusing on the type of classes you most enjoy. Example: I am a back-end developer. In college, I took every single systems programming class that was offered. That was my favorite kind of computer science, and I ended up in a job where I got to do just that.
3) balance. balance. balance. Do not take more than 2 CSE classes. you have time. take a balanced schedule where you use both your left and right side of the brain. It's harder to get burnt out when you have variety.
4) the hardest class I took was: distributed systems. Boy was it incredibly interesting, but man were the labs almost impossible to debug.
5) my favorite class i took: mediaeval and early modern literature (i know, not related to STEM at all. The professor was great, and I love old literature so it was a great way to build variety into my schedule)
6) most useful class: programming languages. why? because most companies have their own internal languages. This class was all about what makes a language. Because of it, I understand CSE language composition better, and it is easier for me to pick up a CSE language.
7) Foreign languages are also great for CSE (for basically the same reason as above) -- learning how to learn a language is incredibly useful when you join the workforce in CSE and have to learn a lot of company-specific stuff. (and they're a great way to create variety in your schedule). You can even take a fun, relatively useless language like Danish (there are 5 million Danes in the world -- I am one of them) because Danish and English both descended partially from old Norse, there's a lot in common between the two, making pronunciation much more difficult than vocabulary (unlike Spanish and it's 7 tenses)
Updated
Elizabeth’s Answer
Hi Lee! The main advice I have is that it is ok to be confused and challenged. You have probably been challenged throughout your course work in the past but computer science can be very confusing in the beginning and the learning curve is quite steep. Just keep in mind that it will make more sense as you keep learning about computers and coding. So stick with it!
I felt as though I was really behind in my first coding class because I didn't realize that a lot of my classmates had coded before. So even if it seems that everyone else gets it in class, know that you are not alone in finding it confusing! Attend office hours or tutoring time if it is available because the extra help can go a long way in helping you grasp the concepts of coding.
I felt as though I was really behind in my first coding class because I didn't realize that a lot of my classmates had coded before. So even if it seems that everyone else gets it in class, know that you are not alone in finding it confusing! Attend office hours or tutoring time if it is available because the extra help can go a long way in helping you grasp the concepts of coding.
Updated
Mira’s Answer
Learning Curve: Programming can be challenging, especially at the beginning. You'll need to learn new concepts, syntax, and problem-solving techniques. Expect to invest time and effort into learning and practicing.
Problem Solving: Programming is fundamentally about solving problems. You'll be tasked with breaking down complex problems into smaller, more manageable parts and creating algorithms to solve them.
Languages and Tools: There are many programming languages to choose from, each with its own strengths and weaknesses. You may need to learn multiple languages and the development tools associated with them.
Continuous Learning: The tech industry evolves rapidly. Expect to engage in continuous learning to stay up-to-date with the latest technologies and best practices.
Debugging: You will spend a significant amount of time debugging your code, identifying and fixing errors. Debugging is an essential skill for a programmer.
Community and Collaboration: Programming is not always a solitary endeavor. You'll likely collaborate with other developers, use version control systems (e.g., Git), and participate in online communities and forums for help and knowledge sharing.
Project Work: As you progress, you'll work on various projects, from small scripts to larger software applications. This practical experience is crucial for improving your skills.
Documentation: Writing clear and concise code comments and documentation is essential. Good documentation makes your code understandable and maintainable.
Testing: You'll need to learn about testing methodologies and practices to ensure your code works correctly. This includes unit testing, integration testing, and more.
Logical Thinking: Programming involves a lot of logical thinking and problem-solving. You'll need to think critically and logically to create efficient and effective solutions.
Creativity: While programming is logical, there's also a creative aspect to it. You have the freedom to design and create software according to your vision and needs.
Frustration: You will encounter frustrating moments when your code doesn't work as expected. This is a natural part of programming. Patience and perseverance are essential.
Career Options: The skills you gain in programming open up various career paths, including web development, mobile app development, data science, artificial intelligence, and more. Consider what areas interest you the most.
Ethical Considerations: As a programmer, you may encounter ethical dilemmas, especially when working with user data, AI, or other sensitive technologies. Be prepared to make ethical decisions in your work.
Security Awareness: Cybersecurity is a significant concern in the tech industry. You should expect to learn about security best practices to protect the software you develop.
Soft Skills: Communication, teamwork, and problem-solving skills are just as important as technical skills in the programming world.
Work-Life Balance: It's essential to maintain a healthy work-life balance, as programming can be time-consuming and mentally taxing.
Overall, while programming can be challenging, it can also be incredibly rewarding. It offers the opportunity to create, innovate, and contribute to solving real-world problems. Expect a journey of continuous learning and growth as you progress in your programming career.
Problem Solving: Programming is fundamentally about solving problems. You'll be tasked with breaking down complex problems into smaller, more manageable parts and creating algorithms to solve them.
Languages and Tools: There are many programming languages to choose from, each with its own strengths and weaknesses. You may need to learn multiple languages and the development tools associated with them.
Continuous Learning: The tech industry evolves rapidly. Expect to engage in continuous learning to stay up-to-date with the latest technologies and best practices.
Debugging: You will spend a significant amount of time debugging your code, identifying and fixing errors. Debugging is an essential skill for a programmer.
Community and Collaboration: Programming is not always a solitary endeavor. You'll likely collaborate with other developers, use version control systems (e.g., Git), and participate in online communities and forums for help and knowledge sharing.
Project Work: As you progress, you'll work on various projects, from small scripts to larger software applications. This practical experience is crucial for improving your skills.
Documentation: Writing clear and concise code comments and documentation is essential. Good documentation makes your code understandable and maintainable.
Testing: You'll need to learn about testing methodologies and practices to ensure your code works correctly. This includes unit testing, integration testing, and more.
Logical Thinking: Programming involves a lot of logical thinking and problem-solving. You'll need to think critically and logically to create efficient and effective solutions.
Creativity: While programming is logical, there's also a creative aspect to it. You have the freedom to design and create software according to your vision and needs.
Frustration: You will encounter frustrating moments when your code doesn't work as expected. This is a natural part of programming. Patience and perseverance are essential.
Career Options: The skills you gain in programming open up various career paths, including web development, mobile app development, data science, artificial intelligence, and more. Consider what areas interest you the most.
Ethical Considerations: As a programmer, you may encounter ethical dilemmas, especially when working with user data, AI, or other sensitive technologies. Be prepared to make ethical decisions in your work.
Security Awareness: Cybersecurity is a significant concern in the tech industry. You should expect to learn about security best practices to protect the software you develop.
Soft Skills: Communication, teamwork, and problem-solving skills are just as important as technical skills in the programming world.
Work-Life Balance: It's essential to maintain a healthy work-life balance, as programming can be time-consuming and mentally taxing.
Overall, while programming can be challenging, it can also be incredibly rewarding. It offers the opportunity to create, innovate, and contribute to solving real-world problems. Expect a journey of continuous learning and growth as you progress in your programming career.