Next Friday I'm giving a short (30 min.) talk to a bunch of software engineering students who will be attending the same university I did.

Some context:

  • The place is Montevideo, Uruguay
  • The university is Universidad de la República (public, free university)
  • The Software Engineering programme takes 5 years (if you're very good and don't start working early). Around 800 new students per year, around 80 graduates per year. Conditions are harsh, particularly the first two years.

Most of them probably have no idea what software engineering or programming is.

My goal would be to somehow give them an idea of the field and hopefully motivate them to endure the hardships ahead to eventually become successful developers.

So the question is: what would you tell these people?

  • 4
    "Welcome to the first day of the rest of your life"
    – AndrewKS
    Commented Feb 23, 2011 at 18:44
  • 3
    Yes, exactly, most people leave pretty early because of the many difficulties (overcrowded lesson halls with 300 people, tests where only 10% get a passing grade, etc.)
    – Álvaro
    Commented Feb 23, 2011 at 18:51
  • 2
    I only remember one part of my first day of a CS degree speech: "Everyone, look to your left. Now look to your right. pause Only one of you three will graduate from this program."
    – Tyanna
    Commented Feb 23, 2011 at 18:55
  • 2
    @Developer Art - I'm guessing it's b/c it's a free university. I think more people would go for CS if they didn't have to pay the huge tuition fees for it, thus the drop out rate would be higher as well.
    – Tyanna
    Commented Feb 23, 2011 at 19:05
  • 17
    "Welcome to hell, bwahahahahahahaha...", you have to practice that manic laughter though for it to last 30 minutes.
    – biziclop
    Commented Feb 23, 2011 at 21:04

16 Answers 16


Find some chick/beau before graduating and actually marry her/him before you get out coding and bury your life.

I wish somebody had told me that then... sigh...

  • 6
    Lots of your comments today seem to be in this vein.. having a bad day? :)
    – Nicole
    Commented Feb 23, 2011 at 18:52
  • 5
    Some would say graduate and go live your life instead of marrying young and burying your life :)
    – Vitor Py
    Commented Feb 23, 2011 at 18:56
  • 3
    I don't know. Getting married will probably bury your life more than getting out and coding;^)
    – Dunk
    Commented Feb 23, 2011 at 18:56
  • 7
    I just got engaged to a SQL developer. Worth the wait :)
    – StuperUser
    Commented Feb 23, 2011 at 19:08
  • 7
    @Jonik: Gives new meaning to "pair programming", eh? ;) Commented Feb 23, 2011 at 19:36

do you want to encourge them or discourage them?

if you want to encourage them, tell them how your work helps people, provides personal satisfaction, and generates a comfortable income

if you want to discourage them, tell them that 9 out of 10 of them will fail and the 10% that survive had better be willing to give up their social lives, evenings, and weekends to an ever-changing field where today's innovation is tomorrows legacy junk.

if you want to paint a realistic picture, blend the two approaches

  • Wow, that sounds like a very American approach. Maybe that's the case if you want to become a billionaire, but my friends, family, evenings and weekends are quite safe from my job, despite several side projects.
    – l0b0
    Commented Feb 28, 2011 at 9:23
  • @l0b0: LOL - that's the case if you want to stay current and cannot learn and experiment on the job. As of yet, it has not made me a billionaire. Yet. Commented Feb 28, 2011 at 17:38
  • +1 - give up their social lives, evenings, and weekends. It has been this way since I have joined the IT industry but the fact is if you love the job even 14 hours a day does not matter. :D Commented Jan 19, 2012 at 4:05

Give a brief definition of each SE course available. No one wants to wind up in his last semester of senior year to find out the course he really wanted to take was only offered every other Spring semester.


All joking aside, what do you wish someone had of told you before starting that program?

When I was a TA, I often told first year students not to be too hard on themselves. Most kids who were accepted at my school were use to being at the top of their class in high school. It's quite a shot for many of them when they get that first fail (or even anything under 80%).

Let them know to seek help when the need it. If they don't understand something, ask. Courses in college are not the same as courses in high school. They move much faster and there is next to no repetition.


I would tell them, what I would tell others.

"If you are passionate about your career, then you must learn from both the best practices of the best in the field, and from their worst mistakes.

Never stop learning, because our era, is the era of always something newer.

Always remember your work, does not end when your done typing your program, that's only the 1st step.

Quality of Work comes from a lot of hard self-discipline, testing, practice, bug fixing, planning your work.

Plan To Work, Work To Plan.

Everything you do, is not a simple thing, so must be thoroughly planned, so you make sure before you ever code/program anything, you have a clear plan that will get you towards your end goal.

Love your job, but your life is more than your job or career, remember to keep good friends, and good love around you, and to support you."

To be the best, you must observe, and watch the best.

I highly recommend everyone watch Jim Valvano's Speech for his ESPY Award in 1993. Here is a man dying as we speak, yet has the most passion in his life for his job/career, and how he shares that passion with others.


  • +1 - Quality of Work comes from a lot of hard self-discipline. From my personal experience, my code quality started to improve only after some years of programming through hard self-discipline. Commented Jan 19, 2012 at 4:11

If you want people to stick something out, you need to be honest up-front. Paint a reasonable but not horrific picture of the challenges of a degree where getting good grades takes lots of effort and perseverance and probably more than a little self-study. After you've painted that picture, describe the rewards. Talk about the personal growth of dragging up your grade in a course through working when others might be having fun, or at least working less. Talk about the value of knowing that you've grown intellectually and also built your character by not giving up.

Finally talk about the rewards of being a programmer. Think about what we programmers get to do all day (when we aren't in meetings or tearing our hair out over legacy code, that is): make stuff work. Whether we're fixing bugs or implementing new features, we type on our keyboards and awful lot but get the reward of seeing something run at the end of it. It's hard to beat that cool feeling of creating, especially when you believe in what your end users are doing. People out there get to write code that helps save lives, run stock markets, pilot space ships, etc. Sure, that's not every job, but if you don't learn to program in the first place you won't even have a shot at such a position.


I would tell them that all in all, the accountants will take all the money!!

Having clear expectations, the rest it´s easier!

  • 1
    I was told that my first day back in 1978. I still opted for computers instead of accounting.
    – S.Lott
    Commented Feb 23, 2011 at 20:02
  • I guess that the motivator worked indeed!
    – user18113
    Commented Feb 23, 2011 at 20:42
  • lies! the lawyers take it all ;)
    – jk.
    Commented Feb 25, 2011 at 18:32

All students must be given a positive but a realistic perspective of the IT industry so that it fosters interest in the field but at the same time keeps them aware of the reality.

So in my humble opinion, the following areas could be highlighted.


  1. You get to do something new almost every day.
  2. A good feeling at the end of the day when you have eradicated a couple of bug or completed a implementation.
  3. Job satisfaction would be the biggest motivator as one third of our life is going to be spent on it.
  4. Only certifications would not help. Good understanding of core concepts with certification would provide a synergistic effect.
  5. Last but not the least, good pay on the long run.


  1. Initial years after completing graduation may not be financially rewarding depending on the industry at that particular period of time until you gain enough experience in your specialized platform.
  2. Recession can be an important point that can be highlighted but at moderate levels.
  3. When taking up important roles in one’s organization, some personal sacrifices can be necessary although this is does not happen all the time.

Things to know

  1. Working as a contractor is not a bad thing and your quality of work will eventually get you to permanent roles.
  2. Nature of work is more important than the designation.

I'd tell them:

You have three options, two of them are promising.

  1. study hard, learn as much technologies as you can - then after you finish your studies, everything you have learned will be obsolete and you'll find yourself a nice job at Tesco. Actually what we'll teach you was obsolete 10 years ago :)
  2. drink, party, make 5-10 part time projects and learn by yourself - maybe then studying will be anything more than a waste of time. If you think you'd rather skip vodka with friends today or scoring 3 chicks a week is too much - think twice, in a very short 5 years you'll be having job and a wife, or maybe even both.
  3. leave now and take interior painting course. It's rewarding, easy, and you'll have cool friends that don't play World Of Warcraft.

Initial years after completing graduation may not be financially rewarding

Yes, that's 100% correct. If you only follow the lectures all your commercialy desired skills will be clicking next in Wordpress installation script or configuring email. In my opinion you could cut all the cr*p (80-90%), keep mathematics, algorithmics, maybe relational model or compiler theory (one of two up to your choice). You'd save a couple of years + you'd be as qualified as anyone that took full course because you can learn everything else yourself.

Ah i forgot very important By The Way point: "Look around and remember - never, ever hang with them! It will limit your chances of becoming level 50 wizards but it's also more likely that at the end of the year more than 20% of you will no longer be a virgin"


Wow, your school sounds harsher than mine. My first day they said, look to your left, look to your right. Those two people won't be graduating. For you, it'll be look at the 5 people to your left and the 4 people to your right. Those 9 people won't be graduating. Ouch! I think an impression needs to be made that it is going to be difficult. Set the expectations high so they have fair warning early on because they thought it would be a breeze.


I'd say be honest, tell them to find a programmer/mentor/whatever and show them what life will be like. Dont get me wrong I love programming and I like my job pretty well......but In the beginning of college did I have ANY idea what i'd be getting into.....hell no.

Also tell them to study hard, and EXPECT it to take more than 4-5 years (took me 6....but I didn't know what i wanted to do at first either). for my College around 60% that started dropped out, then another 20% never made it past halfway. I got lucky, I wasn't the best student but I somehow pushed through and thats all that matters to me.

On the upside however, I got a job pretty easily and got lots of requests for interviews....so once you get out getting a job isn't too bad (i live in a small city tho.....might be different for large cities)


Tell them that all the implementation details they learn will be wrong by the time they graduate. They can learn fundamentals and math, which will be useful. Everything else they'll have to teach themselves. The industry changes every 5 to 10 years, so nothing you know will be useful long term.

I think the most important thing to tell them is that programming is not something which can be taught. You either can think in the right way to create good code or you can't. Those who can, should, because you've got a gift to create incredibly powerful world changing technology from scratch. If you can't, if you struggle, if you're not good, STOP. If you can't get in the zone, and always struggle, then you will never be a good programmer.

Oh, and tell them we're looking for smart self taught programmers for internships in Montevideo! We're hiring. www.cuboxsa.com


My advise, after being there for ten years of my life, is to form a study group with other friends and being very persevering. Also talking about the challenges and the possibilities out there when you start working would be a plus. Good luck!


Tell them that programming is an avenue to a career in pretty much any industry they choose. If they really don't like it after the first few years it's possible to use it to move into management positions.


"Why are you here?"

I'd ask them to reflect on why they've chosen to pursue a course which is clearly notoriously difficult to complete and will soak up 5 years of their life. If they want to learn to become excellent software engineers, understanding how/when/why to write x/y/z solution, then they're in the right place.

If they are there because they had to move out of the family home, they had no better idea, they just want to learn PHP/Java/C# (buy some books of eBay plus a computer - will save at least 3 years of their life), then perhaps they've not properly considered what their end goals are for the next few years. Software engineering is much more than just coding.


I remember what was told to me on my first day as an engineering student. It really struck my mind, and I think it's a deep truth, so you may find it useful as well.

I was told that the main duty of an engineer is to reason about money. You don't have to design beautiful architectures for their own sakes, or implement a new system, or anything else, without keeping in mind the economical side.

What is the most effective way to solve my problem? How much does it cost to do it? Am I really willing to pay for the solution to the problem, or would I prefer keeping the problem and the money? Am I better solving the problem on my own, or paying someone else to deal with it? (Not only offshoring, but also buying a module or a commercial product is the same).

In the end, as engineers, we have to keep an eye on the practicability and economical feasibility of what we design. That's what sets us aside from pure scientists.

Not the answer you're looking for? Browse other questions tagged or ask your own question.