How does Computer programming change?

In summary, the speaker is a computer programmer who loves their job and enjoys staying up all night to solve problems. They express concern about whether this love will carry over to larger projects and when considering time and money. They also mention conflicting reports about the job market for this field. The speaker also discusses the tasks given to programmers when they are part of a team and mentions the possibility of developing carpal tunnel. They advise choosing a major based on personal interests and skills rather than just job titles. They also mention the importance of having people skills in addition to programming skills. The speaker concludes by discussing the distinction between computer engineering and computer science and suggests considering a major in math with a minor in computer science for better job opportunities.
  • #1
ded8381
17
0
I love computer programming. At least the kind I've done so far. I can stay up all night trying to figure out the solution, because I enjoy it; it's not work.

What scares me, is wondering if that love will carry forward to large scale projects, where I am just one of a hundred programmers. Or, if that love will carry forward when I have to consider time/money. Any advice?

Also, I seem to get conflicting reports of the job market for this field. Is it good? Bad?

Thank you,

P.S.

When you're just one of a hundred programmers, what are some examples of tasks your given to code?

P.P.S.

Do all computer programmers end up with carpal tunnel, or with proper care, can you prevent it?
 
Physics news on Phys.org
  • #2
ded8381 said:
Also, I seem to get conflicting reports of the job market for this field. Is it good? Bad?
Like any other market there is always work for the best people.


When you're just one of a hundred programmers, what are some examples of tasks your given to code?
Avoid being just one of hundreds of programmers

Do all computer programmers end up with carpal tunnel, or with proper care, can you prevent it?
I spend a lot more time thinking and reading than typing - of course I might get carpal brain!
 
  • #3
mgb_phys said:
I spend a lot more time thinking and reading than typing - of course I might get carpal brain!
Or carpal eye syndrome, or maybe occupational visualitis. That's when you can't see going to work.
 
  • #4
You have a choice if you want to be 1 out of a 100 programmers. If you go to a big company, your "teams" will be bigger. Even at IBM the biggest team I've seen is 7.My uncle is also a software engineer and he's the ONLY programmer in the company, he names his price and they pay him it. Without him the company is a goner. Sure he has huge amounts of work but he enjoys it and has 7 kids and still pulls it off.While working at IBM all my projects have been solo or with another programmer.

As mgb_phys said,

If your good, don't worry about it, also if all you have to offer is your programming skills, then you might want to worry.

You can be an excellent programmer but if you don't have people skills you won't get far.

Theres another Intern/co-op who shares an office with me that all the managers hate. He gives them an attitude and isn't social at all, I doubt they will ask him to come back for another internship.The one big thing I notice is I always take my work home, its just the kind of person I am though.
I get project done in 3 days that should be done in 3 months (like my last project).

If I have a programming problem I don't stop until its solved and I enjoy doing it.

Sometimes I can't believe I get paid to do this
 
Last edited:
  • #5
Thank you so much,

So what do I major in? Computer Engineering or Computer Science?
 
  • #6
Also, according to occupational handbook software engineers make a lot more than programmers. Do you start out as programmer and then become a software engineer? Or do you just focus on different things in school. Thanks again.
 
  • #7
If you want focus mainly on Software Engineering/coding, go into comp sci.

if you want to do hardware and software go into comp eng.

Comp Eng to me was boring, its more like EE with circuit design/processor design, low level programming/hardware description languages like VHDL/Verilog. I actually use to be a Comp Eng major up until I actually found out what they would be doing as a career.

I'm not sure how you get the title, Software Engineer, on my job title, is Software Engineer but I do the same thing a programmer would do.

When I think of a software engineer I think of more design, almost like a Software Architect.

When I hear programmer I think of someone with a 2 year degree from DeVry. But I'll still refer to what I do programming and I'm basically a "programmer".

But it doesn't really matter, it all depends on the job. If the job is looking for a "software engineer" it will list the skills it wants, if you fit those skills then you are a "software engineer".

Its just a title on paper. They do have Software Engineering majors, but some people frown on them because it hasn't been around long enough to get much credit, also there are very few accredited SE colleges in the US.

East cost, I can think of 2, RIT and CMU.
 
Last edited:
  • #8
mr_coffee said:
They do have Software Engineering majors{...}also there are very few accredited SE colleges in the US.

I think there are a number of Computer Engineering courses that have a software/hardware emphasis choice, and more where Comp Sci falls under the Engineering department (mine does both, at least). I don't think the distinction matters that much to employers, more what you can do and especially how good you are at solving problems (and whether you can work methodically and be productive, but that usually comes with a few weeks on the job or a good internship).

I believe the distinction is mostly one of experience, same thing that distinguishes a senior engineer from a tech with the ink still wet on his degree. Having graduate study in Comp Sci or related fields (Math, App Math, Phys, EE, et cetera) under your belt vs. the guy with a cert from DeVry probably doesn't hurt either.
 
  • #9
ded8381 said:
So what do I major in? Computer Engineering or Computer Science?
Be careful that these are often marketing terms - the college uses whichever was fashionable when the course was last renamed.
Look at the actual syllabus.

Personally I would say do maths with a CS minor if you want to be treated better than the rest of the herd.
 
  • #10
Knowing it's not about the degree, but what you can do, is very helpful. Thank you. What should I be doing for the next four years to make sure I am a good software engineer? I have a lot of flexibility in adding classes to the required ones.
 
  • #11
Learn languages that aren't used in industry - like Lisp or Scheme, there is more to programming than just knocking out another Java app.

Read books about software engineering, Beautiful Code, Code Complete, Programming Pearls, Prgamatic progammer (check JoelOnSoftware for a comprehensive list)

Learn about testing, debugging, source control and other engineering tasks that don't get taught much - the best way to do this is probably to work on an open source project.
 
  • #12
Any experience you can get beyond the concepts covered in classes is good. Get into a REU or internship, so you're not totally inexperienced once you leave college. Solo projects are good, group projects are much better. Experience with pair or group programming beyond just doing class projects is important. Some programs have a "senior project" requirement, which attempts to address this (that, and giving the department a way to show off and attract new students...) but you really want to be doing more of this than just that if you can be. You're not going to learn much about breaking up a months-long group project into a series of manageable tasks in class.
 
  • #13
Personally I would say do maths with a CS minor if you want to be treated better than the rest of the herd.

I would actually not recommend this, at my first interview with IBM (there was like a total of 6). All he cared about is what Computer Science courses I took, I brought up a math course, discrete math which is direct at Computer Science and he said, "Oh that's just another math class isn't it?" I don't care about Math classes, just core programming courses. All he wanted to know is what kind of projects I've done, what core computer science classes I took, (not the basic intro/intermediate programming), do I do any out of school projects, etc.

The guys interviewing you are managers who haven't coded in awhile, they want to hear key words in the Software Industry, not abstract math classes.

So when it comes down too it, I would say the one with more computer science skills rather than abstract math would be the one who gets the job (if you want to be doing Software Design/Engineer).

If your developing algorithms perhaps math major would be better.

Learn languages that aren't used in industry - like Lisp or Scheme, there is more to programming than just knocking out another Java app.

Another thing I don't agree on. IBM wants Java programmers, Google asks several questions on how you would solve something in C on the interview. You don't have a chance to even write anything down, you solve the problem in your head, and say the exact syntax, if you miss a slight syntax error you don't get another question. (it sounds easy if you are writing it down).

If IBM wants someone who is skilled in Java Network programming/Java Server Pages/Java Server Faces/Java Servlets/Portals, who is going to get the job?

The guy who knows LISP/Scheme or the guy who knows the popular Java technologies?

I do agree Java is so so easy to program in that's why its so popular and its cross platform. C++ has nothing over Java.
I say if you want to really appreciate Java, Learn C, which is still used in the industry. I don't know many Software Industries that would even touch LISP/Scheme unless it was in AI or something more scientific.

I do strongly agree here though:
Learn about testing, debugging, source control and other engineering tasks that don't get taught much - the best way to do this is probably to work on an open source project.

All the projects I work with use CMVC, you have to get use to checking in and out your code and doing builds that don't break other people's code. Testing is a job in itself. I know several computer science majors that went to grad school to focus on testing and are working in the testing/automation area at IBM.

I say if you want a job, Learn what the Industry wants, if you want to stand out, be exceptional at what you do.
 
Last edited:
  • #14
mr_coffee said:
I would actually not recommend this, at my first interview with IBM (there was like a total of 6). All he cared about is what Computer Science courses I took, I brought up a math course, discrete math which is direct at Computer Science and he said, "Oh that's just another math class isn't it?" I don't care about Math classes, just core programming courses.
And in another office thet were interviewing a single maths PhD for a much more interesting role and were asking him, ever done any programming? Never mind you will soon pick it up.

If IBM wants someone who is skilled in Java Network programming/Java Server Pages/Java Server Faces/Java Servlets/Portals, who is going to get the job?
The guy who knows LISP/Scheme or the guy who knows the popular Java technologies?
If you want to walk into a boring entry level Java CRUD job, then just pick the cheapest Java-school near you. In fact don't bother wasting 3/4 years in school just buy a copy of "Java in 17seconds for dummies" and learn the acronyms.
Remember that's what IBM want this year, a few years ago they wanted C++/MFC/Crystal a few years before that they wanted Cobol/CICS/MVS.

The OP wanted to know what to do in order to avoid being just another Java CRUD programmer among 100s.
 
  • #15
If you want to walk into a boring entry level Java CRUD job, then just pick the cheapest Java-school near you.

If you look at the OP, he finds PROGRAMMING, not boring but loves it.

As do I. What you find interesting, I find boring.

I can sit and code for hours on end and not get bored once but more excited as the program progresses. So I don't find myself being in a "CRUD" job.

Just because you have a PhD doesn't mean you'll get hired. Infact, you have a bigger chance of not getting hired getting a Phd.

They will be forced to pay you more and you'll be in an even more specialized area with less jobs available to you.

He never said he loves math, or anything about going to grad school.

The OP wanted to know what to do in order to avoid being just another Java CRUD programmer among 100s.

As I already said,
I say if you want a job, Learn what the Industry wants, if you want to stand out, be exceptional at what you do.
Remember that's what IBM want this year, a few years ago they wanted C++/MFC/Crystal a few years before that they wanted Cobol/CICS/MVS.
Perhaps you don't know what it takes to be a Software Engineer, you learn what is popular, you learn a new language every year so you can stay on top.

On a resume, you can't put, I'm a good problem solver. They filter out your resume based on key words, if you don't meet a certain number of those key words, you don't even get looked at.

You adapt to the industry, the industry doesn't adapt to you.

if you want to stay in research for the rest of your life, that's fine, but if you want to make $$$, start out as a Software Engineer, advance to Project Lead, then to project manager, then to development manager,etc.

All of the managers I've talked to started out as developers and worked their way up, then later getting MBA's that the company payed for.
 
Last edited:
  • #16
The Association for Computing Machinery (one of the, if not the, leading professional organizations for computer scientists, programmers, etc.) identifies five distinct degree programs. From http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf:
  • Computer engineers should be able to design and implement systems that involve the integration of software and hardware devices;
  • Computer scientists should be prepared to work in a broad range of positions involving tasks from theoretical work to software development;
  • Information systems specialists should be able to analyze information requirements and business processes and be able specify and design systems that are aligned with organizational goals;
  • Information technology professionals should be able to work effectively at planning, implementation, configuration, and maintenance of an organization’s computing infrastructure; and
  • Software engineers should be able to properly perform and manage activities at every stage of the life cycle of large-scale software systems.
What degree you pursue depends on your interests and on the availability of the degree. Almost every school offers a computer science degree; most offer computer engineering (maybe as a specialty of electrical engineering). Fewer schools offer programs in software engineering.
 

1. How does computer programming change over time?

Computer programming changes over time due to advancements in technology, updates to programming languages, and changes in user demands. As new technologies emerge, new programming languages are developed to accommodate them. Additionally, the way people use computers and the internet evolves, leading to changes in the type of programs that are in demand.

2. How has computer programming changed in recent years?

In recent years, computer programming has shifted towards more user-friendly and versatile languages such as Python and JavaScript. There has also been a rise in the use of low-code or no-code platforms, allowing non-programmers to create basic programs. Additionally, the emergence of cloud computing has changed the way programs are developed and deployed.

3. What impact does computer programming have on society?

Computer programming has a significant impact on society as it is responsible for creating and improving technology that we use in our daily lives. From social media platforms to medical devices, computer programs have revolutionized the way we live, work, and communicate.

4. How does computer programming affect other industries?

Computer programming has a major influence on various industries such as healthcare, finance, and transportation. In healthcare, programs are used to manage patient records and assist in medical procedures. In finance, programs are used for data analysis and trading. In transportation, programs are used for navigation and logistics.

5. How can one keep up with the constantly changing field of computer programming?

To keep up with the constantly changing field of computer programming, it is important to stay updated on new languages, technologies, and trends. This can be done through online courses, attending workshops and conferences, and networking with other programmers. It is also important to continuously practice and improve programming skills to stay competitive in the job market.

Similar threads

Replies
1
Views
812
  • STEM Academic Advising
Replies
5
Views
934
Replies
1
Views
971
  • STEM Academic Advising
Replies
16
Views
865
  • STEM Academic Advising
Replies
13
Views
2K
Replies
6
Views
933
  • STEM Career Guidance
Replies
30
Views
5K
  • STEM Academic Advising
Replies
24
Views
2K
  • STEM Academic Advising
Replies
3
Views
1K
  • STEM Academic Advising
Replies
5
Views
1K
Back
Top