|
Entirely wrong, newbies usually are taught in a wrong way. I learnt programming waking up all night, listening to taunts my brother, friends and other family members had for me, getting sick for working 24x7 in 40+ degree Celsius. I made it! Should I recommend the same way to others?
Wrong, wrong, wrong... Wrong. Programming is fun, agreed. But only when entirely known. You can throw "Bobby Tables[^]" joke at a beginner and laugh alone in the room. Comics, some might dislike them. I don't love comics, I remember that PHP joke, entirely stupid comic. That doesn't happen at all. If someone prefers PHP for development, they don't hate it. If they do (like me) they ignoring chatter about PHP.
<?php
echo "end of discussion";
?>
Here is what I say, try to share your experience with him. How you did it, but what was the main idea. Share your idea, motivation, aim with him. Tell him how you felt and how you managed. Not how many times you drank tea (after making it to this stage, I have taken an addiction of 7 mugs of tea a day! Dang).
If you are an instructor, please try to learn the student before student learns programming. Learn where he lacks knowledge and polish him. Learn how soon he quits, and try to provide him with confidence and strength. Learn where he wants to be shared some in-depth knowledge and try to provide him with fun riddles, algorithms and other similar problems that would provide him with in-depth solutions.
Keeping up-to-date is not required while learning programming.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
We hired an intern about 2 months ago to migrate legacy code. The only programming he had done previously was Java. I started him out with a small 3K LOC module. After a couple of weeks, I felt bad, and provided him with the module mostly done and asked him to finish it. 5 weeks later, and I still haven't gotten anything back. It's a good thing we are paying him by the module!
I was quite shocked a couple of weeks ago when he finally asked for help. While on a remote, I set a breakpoint in VS and started stepping through his code. In amazement, he exclaimed, 'I didn't know you could do that!'.
"Go forth into the source" - Neal Morse
|
|
|
|
|
That is not at all surprising. Personally, I'd have been observing a junior much more closely and passed on helpful information like this much earlier.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
It's an unusual situation as he works from home and is apparently either very independent or embarrassed. I had roughly one hour of one on one with him when we hired him, and he seemed to 'get it'. At that time, I explained what was to be done and let him know that I was available anytime to help. Even in the first week, I took the small project I had given him and spent a few days migrating it myself so that he could see a working example. The only thing left to do was to replace the ADODB components with .NET counterparts. I even sent instructions/samples on how to do this. It's been three weeks since I last heard from him. I'm actually thinking that he's not too serious about it and just needs the internship to fill a credit. At any rate, he has assured me (in our limited conversations) that he has learned a lot, and that it is a lot harder than he thought it would be.
He's young and living at home for the summer. (doesn't really need the money)
"Go forth into the source" - Neal Morse
|
|
|
|
|
Not surprising at all, my first debugging method was to intersperse "meaningful" fprintf to debug files. See, many professors don't know how to use a debugger or never teach it...
Also, I discovered i could "set the next execution line" only several months ago, after 3 years of hardcore 8-hours-a-day (or much more) programming
Geek code v 3.12 {
GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- r++>+++ y+++*
Weapons extension: ma- k++ F+2 X
}
|
|
|
|
|
|
Thought I'd toss this out to the chaos group... had a manager call me today, he was virtual interviewing (yuck) candidates from a local university. The area I consult in is heavy C, not heavy enough C++, very machine oriented, custom machine control HMI. Think Beagle board / Arduino on steroids.
So, said manager had a very hungry Java developer on the line - Java, J2EE, Sql, etc. Enterprisey sort of guy, hell, could have been a gal. So his question to me was - could this work? Is Java to C++ and more particularly our development area to large a gap to jump easily?
I hedged on... no. Because the last time I was asked to spin up a new hire, I wanted to just kill him and bury him out back. Then again, I don't want to be too harsh. I'm an EE, and I know I can learn. My gut call is "it depends". I've seen developers come into our environment and run screaming (we're agile - meaning things change all the time ).
What do you think?
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
This new java dev knows that you work only with C / C ++ ? If he or she wants it I believe that he or she can make the jump to the right side If he or she is making it for the money I give him / her a month max before the running out screaming for mercy
Microsoft ... the only place where VARIANT_TRUE != true
|
|
|
|
|
My personal feeling is...no, probably not.
I used to do both embedded and desktop work (I'm pretty much just Desktop these days) and the two environments are wildly different. A Java programmer is going to be used to having a massive framework behind him to insulate him from the hardware layer (even more so than a MFC C++ coder, since Java needs a runtime layer to actually work) which almost certainly doesn't exist in your development environment.
And it's really difficult to get your head around not having all that memory, and application size, and those helpful classes ready made, and...
How hungry is he? Working at the moment? If not, pull him in for a week - or a month - and see how he goes; but don't expect an easy transition!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
No. Your risk is greater than your reward.
Java and C++ are two separate beasts. Java to C#, sure.
|
|
|
|
|
Yes, no, maybe so.
It depends 100% on the person. I have worked in C & C++; sometimes in well managed frameworks and sometimes working barebone. I have worked in VB, C# and Java, and not worried at all about it. Hell, I started in COBOL and have done too much Scripting to be good for any one.
Anyone can switch, the question to ask is do they have the desire to switch?
veni bibi saltavi
|
|
|
|
|
Nagy Vilmos wrote: Anyone can switch, the question to ask is do they have the desire to switch?
That's plain wrong.
As everybody knows, Java developers hate switch .
|
|
|
|
|
In case you didn't know, Javians lurve to switch , if you want to select a group who are different go slap the VB boyz.
veni bibi saltavi
|
|
|
|
|
No.
There are exceptions of course.
No, really, there aren't exceptions.
|
|
|
|
|
I say, Java to C# would have been a 100% yes (maybe 110%) but Java and C++ (as you're mentioning embedded programming) are entirely different. Java (as OriginalGriff has mentioned above) works on a framework, known as Java Virtual Machine, which executes the bytecode of Java by Just-in-time compilation process. C++ on the other hand has to be compiled to the metal and thus, every processor architecture needs to be sure of, x86 or x64 and other bla bla.
I would have asked that person whether he knows some about Java ME. Java SE and Java EE are all high-level frameworks and they run on JVM (you know), where as Java ME (although not a low-level but) has a few low-level stuff and needs to be memory-efficient, the SDK is also built for micro devices and would allow you to learn a few things I have personally enjoyed this, it is used for programming embedded devices or other micro controllers.
If the developer is eager, (as OG mentioned) hire him, give him a test time. Allow him to learn the frameworks and language (C++ and Java are differnet languages in their structure also!). Indeed if this was for me (and the offer was worth investing my time for), I would have learnt C++ and embedded device programming in a matter of 2-3 weeks.
Programming is fun!
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
If they are straight out of university, they are largely stuck with what the university teaches: Java in this case. That doesn't mean they CAN'T learn, it means they were taught Java.
So... can they make the jump? Depends on the person. Bring them in, give them a chance. Realize they have a steep learning curve and don't let them make production changes. Mentor them, code-review them, but allow them to learn.
|
|
|
|
|
|
Sorry but no, unless he has some side projects with C or C++ on Arduino.
|
|
|
|
|
That's for sure, if he/she only program in Java, then it would have a hard time with C++, but if he can learn another language and use several ones besides Java, hire him/her.
|
|
|
|
|
It will get hard, because Embedded C is pure C and a lot of bitshifting and memory access. And the Java is high end server stuff. If the guy is smart and willing he can and will learn it, but he will need its time and a lot of passion. But it will take time and maybe the guy isnt satisfied and leaves after some months.
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
I'm going to argue the other direction. A bit over a year ago I was drafted for an internal PIC32 embedded project despite my professional career having been in .net and other high level languages; with C++ being something I did and forgot over a decade ago in school.
It was a major shift; but I didn't have any major trouble picking it up. I only had two majorish problems that would've been managable if I'd had more than a month or two for a crash project. The first was the slow deployment process horking up a lot of my (especially early) time estimates. (The amount of time I spent coding was in line with what I was expecting; but the difference between being able to click run and stopping at a breakpoint a few seconds later and having to spend several minutes programming multiple chips first slowed everything down a lot.) The other was a combination of my not knowing how to read board schematics/translate data sheets into reality (and for most of the time not even having a viewer for the format the schematics were made in); and limited information flow with the person who designed boards and wrote the lowest level code about how the low level bits he was writing were intended to be used and where IO pin multiplexing meant that I couldn't use X and Y at the same time even if I wanted to.
I'd talk to the kid and make sure he understands what he's getting into. If he's expecting to have a bunch of huge libraries and to never worry about memory use I'd be worried; but as long as he understands what he's getting into and appears able to learn I don't think it should be a major concern. It's not like a kid right out of school is going to be able to work in whatever they thought they were learning without a non-trivial amount of ramp time after all.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
I'll agree with the others who say it depends. I got a BSEE back in 1994. The place I was working at the time was a C/Assembly shop doing embedded programming. Our program at my school had 1 semester of 6502 Assembly, and a semester of FORTRAN. No requirement for C. I learned how to do C on the fly, and actually got to the point where I could write faster, smaller, and more efficient C code than most of my colleagues' assembly code. I was writing ISRs using C when that was frowned upon. I did that because it was easier to debug, and then just tuned the C to output the assembly I wanted.
We had a mix of people. Some were EEs like me, some had CS degrees. We basically split the work up so that the EEs were doing the board level stuff, and the CS people were doing the application level stuff. This was layered so that we could do a lot of the application level stuff on the PC first and debugged there.
The personality of the person I think has a lot more to do with how good or bad they are as a developer. One of the best developers I have worked with didn't even have an associates degree in anything, just a high school diploma. One of the worst ones I worked with had a masters degree in EE.
I'd say to talk to the person yourself, and you can tell if they are someone who likes to learn or not.
|
|
|
|
|
You guys are great. I was going to post this over in the Java forum, but the first 12 posts were clearly homework related.
I do agree that SOME people could make the jump. It's funny, one of my programming questions to candidates is: What's the largest unsigned value you can put in a byte? I'll usually clarify it by saying, "You know, 8 bits...". If they have a clue they know I'm setting a trap . So we agree that the largest value is 255. Good. Now, what's the largest value you can put in a word - 16 bits? And if they have no concept, they'll say ... 510.
Anyway, I like the idea to try them out, sort of a no-fault clause.
I truly appreciate all of the feedback.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
size of a word in c is processor dependant. if the size of a word is 32 bits the largest value would be 0xFFFFFFFF. If it is 64bit it would be 0xFFFFFFFFFFFFFFFF... at least if the word was unsigned... else the largest value would we 0x7FFFFFFF and 0x7FFFFFFFFFFFFFFF.
Can I get the job?
"Program testing can be used to show the presence of bugs, but never to show their absence."
<< please vote!! >></div>
|
|
|
|
|
lol, I disagree. You CS types f'd it all up. point taken, but to avoid confusion, we now have word, long word, long long word, etc.
but specifically I would even mention the # of bits I was talking about, just to see if they have a clue for binary. I want to know what they see in their head mentally. Interestingly, if you put that you know C, you better know something about this... otherwise you lost me. Have had people with MS in computer science.
fwiw, the company I consult for is actively hiring embedded or close to embedded. If you like or think you like the Atlanta area, contact me off line.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|