what faculty do i have to follow to become a good programmer?
Hello everybody i have confusion about three faculty . That are computer science;
computer science and engineering ; and information technology. I need you to advise me which one i may follow to become a good programmer. #students #engineering #professors #programmer
It's important to think of programming as a capability. A good programmer has an ability to create software that solves a problem or meets a need. Many good programmers are mathematicians, engineers or scientists. On the other hand some of the best programmers I've employed had radically different formal training. They were musicians, writers, political scientists, or had no-university-education-whatsoever. The most important capabilities of a good programmer are (1) a knack for critical and creative problem solving, (2) an effective approach to learning new material, and (3) a firm grasp of at least one programming language.
As long as you make sure you develop these then any of the faculties that you mentioned can provide a gateway to a very satisfying career as a programmer. So can any business degree as programmers typically spend a lot of time understanding specific aspects of a firm's business (called a problem domain).
Don't sweat the title of the major. Look at the school and what they offer in terms of courses or specializations. The biggest thing would be to always keep your hand in doing real projects. You can start by doing some free work for non-profits but over time move to real software with a purpose. You will find your courses make much more sense, are easier and more valuable if you are able to connect to real problems. You should have no problems finding summer jobs or internships that can help you learn.
I agree with Trevor that good programmers can come from varied backgrounds. But in my opinion there are four things I think every great programmer must master:
- Problem deconstruction. You are often given a high-level goal such as "create a leader board of the best stock traders in the online community." You will need to work with others in the company to figure out what "best stock traders" means, and what information and data is available to you to meet the goal.
After that comes the real problem solving. Being able to break the problem into sub-problems that are more manageable, assign functions to the sub-problems, and sequence and interface the sub-problems together so that they provable generate the desired outcome is hard.
Think of programming as teaching someone with no knowledge to perform a task -- you must give the computer exactly correct instructions. It does what you tell it, not what you want it to do.
Think about trying to teach someone to make cookies. You have to tell them to reheat the oven to the right temperature. Then gather the ingredients. You have to tell them to mix the butter and sugar. Then mix in the eggs (don't forget to tell them to discard the shells!). Then flour. Then chips. Spoon the dough onto a cookie sheet. Bake for a specified amount of time. Miss any of these instructions, or make them unclear, and you don't get cookies at the end, you get something that ends up being thrown away.
Learning. Whether it's from your colleagues, online resources, or examples and other written material, every new project is an opportunity to learn additional skills or knowledge and improve your art. Know what you don't know and be aware that you can learn from anyone.
Data structures. So much of computing involves the handling of data. Whether it's gathering input, storing / fetching persistent data, or organizing data for efficient access, use of appropriate data structures is paramount. I always recommend that anyone doing a career shift into computer programming from any other domain first take courses in Data Structures and Algorithms.
Algorithms. As the saying goes, there are many ways to skin a cat. In computer science, there are almost always multiple ways to solve a given problem. For a given problem, some algorithms can take 10's or 100's of times longer to complete than others. Other algorithms might require more memory or storage capacity than is available. Similar to data structures, being able to select or design an appropriate algorithm for the problem and constraints can make the difference between success and having to go back to the drawing board.
Best of luck! Programming can be frustrating but it can also be an incredibly satisfying creative endeavor when you finish and see your work in action.
Computer Science: Typically more math-based, focused on algorithms, proofs, research and optimization.
Computer / Software Engineering: Typically more focused on the direct application of computers and software to real-world problems. Less research-focused and more focused on building working software with a team.
(Above are very broad generalizations, of course.)
Information Technology: Focus on using existing hardware and software to solve problems for businesses and other types of organizations.
- Computer Scientist comes up with a new algorithm to compute an optimal path faster.
- Software Engineer implements the algorithm in a new mapping program to get people directions between landmarks faster.
- Information Technologist deploys the program across a trucking company to save time, money and fuel.
My advice is to follow the path that most appeals to you. Are you good at math and enjoy more theoretical problems? Computer Science might be best for you. Love building things and solving real-world problems with new approaches? Perhaps consider Software Engineering. Enjoy working broadly with technology to help people work better? Maybe IT is the right choice.