Discussion in 'Off Topic' started by Grantrithor, Feb 22, 2013.
So. Much. Rage.
You missed the point. Java stops being interesting once you're older than that. The fact that you have any kind of a dilemma there shows that you're just looking for easy way out. People like that usually don't have enough motivation to write anything bigger (which is when you start to really learn). Few more years of such thinking and you'll end up as some kind of tester who barely writes anything.
Once you have something of decent size, you'll start appreciating the real meat of it: algorithms and data structures.
I did C/C++ most of my career, mostly low level drivers, a few years of assembler. I wrote a driver for IEEE488 that blew away the Texas Instruments driver. Also drivers for SCSI, Firewire, 1284, USB and most recently networking - a discovery driver for Windows using the Apple Bonjour driver for Windows. I know Bonjour (mDNS) better than any Macintosh weenie, at the bus level. Now in my new job they want me to C#, but in the same breath want cross platform. So I say - why would you do C# for cross platform. They use MONO - GAG ! Not my decision. Things will be changing.
What you could also learn, that will get you a job, is MVC4. It uses VB or C# - and is called Model, View, Controller. It makes you think differently - like when you go from C to C++. When I was in college I took every programming language they had to offer. You have to consume this shit and ABC ! Always Be Coding ! No coffee for losers who don't code. If you want to get into Linux - pick up a Raspberry Pi board for $35 or just load Linux on your PC.
Hey one more tip - learn to write reports and do design work with Visio. Part of you job will be writing design documents and you need good Engrish.
Visio is a really nice piece of software.
But Java and C# are the same... some small syntax changes and you have learned both. How much of the language library, most of which is the same stuff, you'll need to learn will depend on your job. Even if you can write C/C++ in C#, that's a grave sin in the object-oriented world.
You'll see a lot more Java than C# anyway.
OR a lot less considering the recent rash of huge security holes java has.
If you still need motivation to learn programming, watch this video twice a day.
Tips for Wanna Be Programmers.
1) Never say you know something that you don't know.
2) Always show "Willingness to learn". This above all thing may get you the job. I was part of a team interviewing new people and we always chose the eager over the more knowledgeable. The more knowledgable sometimes only does it the way they know - we want to see that you will bust hump to learn new things since development is always new things.
3) NEVER use the word GURU or Expert on a resume. The veterans will shred you for fun. You open the doors for us to ask you anything if you say you are the best at something. If you succeed that is just good, but if you come in not saying expert but show your expertise during the interview, then you get the job.
4) It's OK - to say you are a gamer, but NEVER play games at work, during lunch or at work - even after work. The ONLY time this is OK is if the boss invites you to play, then only when he's playing. I've seen too many guys get the OK to play games at lunch, only to be looked down upon by the REAL PROGRAMMERS.
5) If you have an idea, PUT IT ON PAPER. You have no idea how many of my ideas have been presented to teams by CoWorkers since they documented it and I just handed them the idea. One guy got a raise for MY IDEA. When I asked him about it he claimed he thought it up. It is free for anyone to steal if you don't document, date and put your name on the paper. Same goes for an Email - if you have an idea, don't send via email. Put it in a Word Document - and attach it to the email. Keep all you documents. I have a folder under every DOC folder called "I WROTE". Every project has a DOC folder. I keep formal documents, notes, emails and proposals under "I WROTE".
6) Fucking read your own documents and emails before sending them. Don't just rip them out and expect someone else to untangle them. If it's more than a few sentences YOU MUST READ and EDIT.
7) Network, Peer review - use internal resources to be smarter. Your idea might be the stupidest thing ever spoken. Talk to someone you trust or a mentor and get constructive feedback. I documented an idea and sent it out to a team. It was a good idea, which Marketing loved. My technical peers decided it would be too expensive, requiring expensive additional hardware, file storage encryption and shit that we would not spend the money on for the product. Now I spend my meetings trying to get Marketing to dump it.
8) Get on LINKEDIN. Ask everyone you have ever worked for to put in a reference for you. I have eight recommendations from my last job, one from mentoring robotics, and lots of skill endorsements. I should have 30 recommendations but I never bothered until I had to leave the division that was shut down with a days notice.
9) You get to piss off people ONCE, then they flip the bozo bit on you. That underling that you have very little respect for can very easily be your boss in six month. It happened to me on a contract position with Xerox. The stupidest, meanest, worst programmer became the boss. I left with a one finger salute.
10) If you have a beef with someone, you can either be a wimp and go to his manager or just stop into his office and have a heart to heart. The H2H will potentially turn this person into a peer or friend, but going to his manager will make him a certain enemy. I never go over someone's head. You might have lead on the best project in the world, but if you can not get your peers to agree, it will never happen. Talk one on one to people. Or you can just decide to be a monster coder and lock yourself in your office for 30 years. I know guys who are unreal developers who prefer that. I decided long ago not to get into management. It's a baby sitting role, and you lose your technical skills. ABC - Always Be Coding !
I work for a company that is currently going through Bankruptcy. When I joined there were 65,000+ employees in the city that I live in. Now there are about 4,000. How many cuts do you think I survived to still be here? One year we had a 30% cut in October and another 30% in January. I went from a team of 24 programmers to 7 then to 3, and last year 1. Guess who's the final guy standing. Had I chosen management - I'd have been gone. All my bosses from a division of 2000 people are gone, I transfered when the 3 of us heard death was certain. One guy went to work for Apple, the other was forced out and works for Harris RF now. The 1000+ people division I'm in now are being sold, and becoming their own company.
PS: I didn't re-read this note, so hopefully my typos are minimal and everything makes sense. No gaurantees and potentially an example of why you should re-read all business writings.
Asm matters when C/C++ breaks apart. Guy 1 desk away from me spent whole day tracing interaction between hard float and soft float code in MIPS asm.
You want to be able to at least read asm. If you're refactoring some piece of C++ code but want to know if it incurred additional cost (that thing matters in piece that are used often), you just have to look at final asm.
Raspberry Pi is quite fucking expensive compared to what you can get without nice marketing.
IMO there are 2 ways into programming:
- Lisp first or something else that is functional
- C first. Not C++, not Java, not C# or anything like that.
I play games and watch TV over lunch. I just make sure I don't get caught doing it.
Do you also export you job to an Hindu guy?
Occasionally when there's a larger amount of work to do, I've got in support from some of our colonial friends, whom I can supervise as they work in groups, rather than me just soloing the work.
Rofl @JustGoFly with his LinkedIn and heart to heart advice. Listen up kids, this guy has life skills and recommendations on a LinkedIn profile!
Wut. Nice example.
Also for all the C++ enthusiasts here: http://simpleprogrammer.com/2012/12/01/why-c-is-not-back/. Yous houldn't force someone to learn a low level language if there's no reason for them to and they have no interest in coding something that requires what C++ gives you. As general programming advice I disagree with advocating it as a first language.
From non-coding related work experience i can confirm that confronting people directly works surprisingly well. Not sure if LinkedIn is worth it in Europe.
This blogger basically says C++ is too complicated and knowledge of Java/C# is enough for writing most programs. But if this were true, why aren't there more applications written in Java/C# ?. 90% of the things running on your computer right now are either written in C or C++ with the random Java app sneaking in here and there.
Not sure about LISP, I never dealt with anyone who used it. If you want a programming language that is very functional and simpler - learn PYTHON. It's cross platform and used in businesses - especially to aid in testing or scripting of builds, or anything else that a bot is needed or a test interface is shown.
If you do network programming learn WireShark. It's free (WireShark.org). It's a network sniffer, then download the protocol books and read them so you learn the protocols. I have found more SW bugs in Firmware and host SW by looking on the wire. I'm the last guy they call to fix a problem that no one can figure out because I use analyzers and sniffers. I saw the value in them back when I had to use protocol analyzers that only shows the signals wiggling on the bus, and I had to convert those wiggles into data bytes. I have freaked out many people by showing them a thousand mile long trace and show them one wiggle that was their problem and how simple it would be to fix it. Now analyzers are much more powerful - but very expensive. I was able to justify purchase of three $20 K analyzers for our department after I solved multiple issues that caused our SW to break. I have SW out there for 20 years still running Kiosk's with no failures - EVER. Some idiot tried to tell me you couldn't write perfect SW and I told him he needs to find a job else where.
It actually doesn't matter what you learn as long as you know it better than anyone else and it is used in the industry that you want to work. Internships and COOP's are very important to help direct you, but they are done too late in school. My son wanted to be a Game Programmer. I got him into Cisco in his Sophmore summer, and Junior summer. He now wants to work for the government on top secret programs and has an offer for a full time job with Cisco in San Jose starting in June. He learned early what to study and he did not take my advice. My advice was C#, he went C++ and LINUX. Who'da thought how huge that would become. It is probably the #1 desire in products today because the OS is free and the CPU power has grown so that even small products can have multi-core support. Knowing both Linux and Windows makes you even more valuable.
LabView is a huge industry for manufacturing. If you live in a mostly Blue collar area - that would be silly to learn. I moved from NYC area to upstate NY and it's all industry here, but was all offices and management space in NYC.
I'm getting the idea some people have missed the point - to everyone in this thread, I am not new to programming, I am fluent in two languages.
You'll probably learn C# easier, since you can, in many cases, do the same thing in C# as in VB, and you can link functionality, partially created in each. C# is also marketable and more so when paired with VB. It would be a good match to hire someone who knows VB and C#, but VB and Java might not compliment each other as well. Java does have a market though - but I do believe it is shrinking. The security risks Java introduces outweighs it's cross platform functionality.
Look on the big job sites (Monster...) to see what companies in your target area are looking for. Your first job will define the direction you will take. Again your ability to learn and eagerness to learn are the best trait you can show in any interview.
Before you interview at a business, try to find the names of the people who will be interviewing you. Then go out to Linked In and read their resumes. They can track that you have looked at their resume but that will be looked as favorable agreesiveness. Also even if you don't know their names before you interview - WRITE IT DOWN during the interview and always follow up with a thank you email. One guy we interviewed wrote each of us a note within a couple hours after our interviewing him. No one else did, and he ended up getting the job. It's just one thing but might just count for 10% of the decision.
Don't be cocky at an interview. A trick used to get someone to reveal information is for the interviewed to ask a question and not say anything for a minute after you stop speaking. You will be uncomfortable and will want to fill that empty space with talk. DON'T DO IT. You'll show you level of confidence by answering the question and just sitting their quietly waiting for another question. One guy couldn't handle the white space and he started spewing all sorts of nonsense that cost him any chance at getting the job. A highly paid co-worker interviewed in the group I work in after our Inkjet division folded. He is amazingly talented but he screwed up the interview and was out on the street. Now he's working at $40K less than he was making. That is a pretty expensive mistake for not practicing interviewing skills.
Don't think I have loaded a Java app in the past year or so, but for some reason a lot of corporations use Java apps for network applications. A lot of my programs are games or tools so yeah, you would be right that they are written in C/C++ because they're giant applications that require memory management knowledge. My point and the guy in the blog are both saying that a lot of these posts are suggesting that you need to know assembly and pointers or GTFO when you're starting to program. Seems a bit pointless to me when there's a whole market of jobs out there that don't require you to have such knowledge as a graduate.
You guys write too much... this is suppose to be a section for trolling and spiderman memes.
Just use whatever programming paradigm that interest you. There will be plenty of opportunity for all languages (except Basic. Fuck you Basic). Even if you are just doing it as a hobby, it all depends if you want to use a convenient scripting language or efficient C. If you need to learn something different in the future, you are not programmed (punt intended) on a single language for life.
Separate names with a comma.