|
Certification with an argument for imposing consequences sounds like licensing to me or already close to the next step to get there. It's a moving line. Open the door, and the next person fights for the next step. Doesn't answer my concerns and points in any case.
Plus - there are certifications for software development/software engineering - I suppose you just don't like them? Maybe for some of the reasons I point out?
|
|
|
|
|
Very pertinent answer, I think (I can't give 2 upvotes...). As a medical "specialist" I can only agree with you that self-learning values the most, we must all have licenses (in order to practice). As a self-taught "developer" I can say the same thing. Freedom is the key for any developer/creator/inventor. Checking and/or testing is the key for any user/client, starting by not clicking on any "Download Here" link on any obscure page.
|
|
|
|
|
Quote: I have reviewed so many Computer Science degrees from multiple colleges where the amount of programming, the level of difficulty, and real world use is abysmal.
I think you proved his point.
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
I never said I disagree that there are too many 'programmers' out there that don't what the heck they are doing. I also made the point the many of the PhD experts our there don't have a clue either. Who do you think will head up this organization? Elitists that have a clue too many time.
I tried to explain this to my young adult son who likes the idea of permits and oversight. He thinks (as many do) that this protects the interests of the individual. No. It makes the individual ignorant and gives them reason to relegate the responsibility to know about the issue at hand to the 'expert'. How many people know how to properly build a house, run electrical, etc...? It's all regulated, licensed, etc... So people get complacent and simply assume that the 'professional' doing the work for them will do it professionally. Or, that the inspectors are actually doing a real inspection based on their own 'professional' knowledge. It's all smoke and mirrors and in the end a money scheme.
Again, any competent professional manager can get this out of applicants for their programming staff and they would be negligent if they only gave credence to a certification or license. But, the tendency will be for them to do just that. In the case of customers - learn about it so they can make an educated choice - or have their own trusted IT source help them - but again - they should not simply hire a programmer under contract or a company with a programming staff blindly and taking certifications as the end all.
|
|
|
|
|
In a word - No.
The type of organization you describe is called a trade union. What we've seen over the decades as that although unions, regardless of why they started, eventually become barriers to entry for competitors.
I'm not opposed to distinguishing between a programmer and a software engineer, with the latter being required to have additional skills to ensure robust and bug free software. But requiring programmers to belong to a union would make it impossible for the mom & pop store to create a web-site. Not at first but it's a guarantee this would happen, simply because of human nature.
|
|
|
|
|
obermd wrote: requiring programmers to belong to a union would make it impossible for the mom & pop store to create a web-site. Because there are no non-union shops. Give me a break.
|
|
|
|
|
I have no problem erecting barriers to entry into the programming workspace. I have seen the junk code produced by incompetent "programmers" who are only interested in the paycheck and who work for managers for whom the bottom-line is the only measurement of success.
Gus Gustafson
|
|
|
|
|
I see no barriers to "programming".
I see a barrier to B.S.
And there's nothing wrong with a "code of ethics".
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
How does a certification erect a barrier to entry into the programming workspace - wouldn't that be the function of a license vs a certification?
And two, who are you are to tell business who they should ignore, who they should hire, or what standards they should be looking for - you are very linear here. I get your point about what you have an issue with - but why is it your call? People do have different reasons for why they hire - and you seem content to put them into a box. What if they are a small startup and they can't afford senior developers - but have a new idea of a solution that they way to put out. Maybe they need a functional beta to get more venture capital to justify hiring better developers. It's not black or white.
If you have your own business - then you set your own hiring practices. If your competitions hires incompetents - they will fail, you will succeed and they will go away. Free markets - you know...
|
|
|
|
|
You're assuming "senior developers" are expensive.
If I can't stand the job, pay is irrelevant.
I see (some kind of cert) as protecting the "consumer" (not the developer).
Certs are NOT a problem for "cheap customers". I say the opposite: it helps in some way to narrow the field when you're shopping.
My customers have been "lucky" because they had no IT department; no one to second-guess me. I delivered the goods because that's who I am, even though most had no clue who and what they were getting involved with.
Yes, some "cred" would make them feel a little easier ... even when there's not a lot of money at stake.
But in the end, it will make no difference because "users don't know what you don't know".
But at least "I know what I know" (and what I didn't).
And certification, in my experience, is not about reciting some obscure op codes.
It's also about problem-solving, managing, risk assessment, thinking ... you know: "soft" skills.
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
Generally 'senior developers' are more expensive.
I think you misunderstood - or I didn't say it well - but I don't believe 'Certs' protect anyone - especially the customer. I believe it gives them a feeling of false security that leads them to abdicate their own responsibility to look into the topic enough on their own to be able to ask smart questions and to have proper expectations of an employee or a contractor - which too often leads to bad ends.
There are too many people with degrees, certifications, licenses, whatever - that do not truly have the skillset to do what they claim. So long as these titles carry weight - people will not take the responsibility to make sure they can actually do the job. The 'title' says it all for them - or at least too much.
The employer or customer hiring a contractor - whether it is programming, IT, house repairs, etc... needs to be competent enough on the subject at hand to know what seems legit, to have an idea when things are going sideways, and what to do when and if that happens, how to setup internal policies for firing and/or when to break the contract and move on, etc...
|
|
|
|
|
Sounds like you never freelanced.
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
That's an interesting take. I've had an IT company for many years - much less freelance. My focus was not on software development, but IT solutions as a whole. I did some programming projects - but mostly the programming I did was of my own interest. And what's that supposed to mean anyway - that I don't know what a cert means for getting work? Of course I do. And as I stated in another post - I have like 5 certifications - besides a programming degree - that still doesn't mean anything as there are people with certs and degrees that are subpar at best. Again, customers simply relying on that is not enough - they need to take responsibility for knowing what they should be expecting vs getting, otherwise they are up for being taken advantage of. And yes - there are courts for when that happens - but that process is expensive, time consuming, reduces confidence in the industry, etc. It's not the preferred route. Just because I have certs and a degree, doesn't mean I don't get into details about my particular abilities and skills when I'm going after a job or trying to get new customers. I know they help get jobs - but they shouldn't. Too much weight is put on them. Just like at the moment too much weight is put on college degrees to get regular jobs. It's a game. 4 years of OJT vs a 4 year degree - I'd take the OJT any day over the degree - from my experience anyway.
|
|
|
|
|
The programming world is far too diverse for this kind of thing.
"Programmer" (or any other title, for that matter) is such a loose term that it's no more specific than referring someone to as a "builder" - you could be talking about a master stone-mason, a crane driver or a hod carrier.
Then add in the fact that programmers work in such a huge variety of organisations from tiny tech start-ups to huge non-tech corporations and their needs are every bit as diverse as their skill-sets.
Guilds and unions are great where you have a whole bunch of people doing very similar jobs but that just isn't the case here.
Whenever you find yourself on the side of the majority, it is time to pause and reflect. - Mark Twain
|
|
|
|
|
And one more facetious thought - maybe we should focus on creating a professional licensing organization that licenses people who want to create professional licensing organizations. I mean, if you setup one of these organizations improperly or do it under the wrong premises or reasons- it could cause HUGE problems within that industry. So, only those who have a proper license should be able to propose creating them. The specific words, phrases, concepts, legalities, etc... especially when flaws/failures could cost money/time/resources, indirectly cause injuries, death, etc... are a serious concern. Only seasoned, elite, professional licensing organization creators should be involved in such things.
|
|
|
|
|
Gus...
Like you I have spent decades as a professional software developer. And I have used many languages, finally specializing in C# and VB.NET since 2001 when the Microsoft .NET Framework development environments were commercially released.
However, I am not sure that certification is the way to go. Certification implies testing, which is short lived at best and useless at its worst.
Various coding boot camps have performed a similar function in terms of certification and it has been found that such graduates only have a cursory knowledge of what they claim to know from such training.
I have to agree with the commenter here that suggested a union but there are issues here as well. The Freelancer's Union attempted to be such an organization for the growing "freelance economy" (which was just a new word for exploitation). They appeared to have a good start but quickly eroded as they became more or less another insurance company peddling Obama Care medical programs, all of which were questionable in quality.
As it regards your observations on the Boeing 737 Max aircraft, there is nothing to indicate that any programmers were at fault. This was clearly a management decision to hide issues that resulted from the extension of a design with additional attributes the original design was not meant to support.
As usual, stupid management made a very stupid and dangerous decision, not the developers.
The deterioration of software development quality in the United States has many factors. However, the major ones can be categorized as the following...
1...
Corporate outsourcing of IT positions to reduce costs while lowering quality and flooding the US professional IT market with low-cost foreign workers that are willing to be exploited by degenerate management to the detriment of US citizens
2..
Increasingly, degenerate technical management that has been increasingly politicized to the point of ueslessness
3..
Vendor promotions of increasing complexity in development products, which has seriously weakened the inherent knowledge bases in the various communities
4...
Constant iterations of software, which add only questionable capabilities in lieu of the basic sets of features the majority of developers require or use
5...
The promotion of cloud-based services, which inherently reduce security for the purposes of allowing such companies as Amazon and others to make more money without advancing anything that safer individual, corporate run IT organizations could provide
6...
A major degeneration in the parenting and teaching of the younger generations that on the one hand are being coddled to death to the point that many young people are nothing more than vegetables while being taught in such a way in the many school systems to understand the world around them in a very restricted manner without any emphasis on critical thinking or the need to resolve their own problems on their own
The list could go on but you get the point...
The professional, technical environment today is too fraught with impediments to make an organization substantial enough to accmomodate the needs of professional developers and software engineers.
However, if one were to proceed with such an endeavor, it would have to be well planned out with multiple facets such as viable medical insurance programs, training capabilities, and legal assistance for professionals who run into issues on the job caused by management.
As a result, in my view such an organization would require to offer far more than just certification, which as I mentioned earlier is questionable at best...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
Somewhere along the line the concept of certification became embedded. I do not espouse certification. Rather I espouse something more in the line of an apprentice-journeyman-master approach - like blacksmiths who also create something out of a simple piece of iron.
To the younger programmers who object remember: you maybe earning $90K today but there is always someone coming out of college who can do your job for $75K. And guess who management hires? You have no protection! You have no one looking out for your interests!
Gus Gustafson
|
|
|
|
|
And if that person coming out of college can actually do the SAME job at $75k - they why should your employer pay you $90k? They pay you $90K because you have more experience - are presumably faster at getting a complex project done and able to develop solutions that the newbie can't because they simply don't have the experience - not because you are a familiar fixture in the office. If your employer cannot see that - do you want to work for them? Should you maybe be looking for another job - or maybe branching out on your own? This is common to most any job. I have done IT work for decades. I can track down and resolve issues faster than newbies that don't have the same level of experience. When I have had customers or employers that couldn't understand that - I moved on. Yes - you can 'fire' your customers too
|
|
|
|
|
Some thoughts for a professional organization
- Membership must be voluntary. There must be a place for people who choose not to belong, or who could not meet the demands of the certification process.
- The association's core product would be a code of ethics, binding on both individual and corporate members, with some cost (at least losing their membership) for ethical failures.
- To become and remain relevant, there would have to be some advantage to belonging, both for individuals and for corporations.
- The association could provide voluntary certifications. If the certifications were valuable, companies would come to expect them, and would perhaps even send employees to obtain them. There are existing certifications which the association could adopt initially. Maybe the association could put their brand approval on other groups' certifications.
- Along with certification, the association would have a role in providing education with certification as the end goal. As with certification, there is courseware that the association could adopt initially. Providing education leading to certification could become a powerful tool for pointing the industry in a positive direction.
- Like a labor union, the association could come to have a collective bargaining role, perhaps not for wages, but for working conditions. Some of this could happen through ethical rules about how to treat workers. If I was planning such an association, I would wait to roll out collective bargaining until there had been some uptake of the basic idea. (Bwah ha ha).
- Like a traditional union hall with members sitting around waiting for work, the association could maintain a market of freelancers who were certified by the association, or a collection of resumes. ACM makes a somewhat weak and pathetic attempt at this, but their heart isn't in it because they are run by academics.
|
|
|
|
|
Got mine first try. Computer grads; not so much.
Certificate in Data Processing - Wikipedia
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
Quote: What bothers me about programming today is the number of people who claim to be programmers but who are not. These wannabes claim to be programmers but when you look at a wannabe's accomplishments, they usually include applications that are written in a macro language (such as VBA) and that are usually trivial and unfocused. We need a word to describe this class of people who are intelligent enough to pretend to program without actually programming. In many other career paths, they would be called apprentices.
Can we look at a programmer as someone who breaks a given task into steps and instructions for a computer to follow? How big a program does it have to be to make a programmer? I don't have quite your years, but VBA and xbase (Clipper & FoxPro) before, have been good to me. I have an MS Access database with ~20 users that has been working for ~20 years now.
We have code at so many layers, imbedded systems to UI candy.
Is writing SQL, coding? RegEx, does that count?
|
|
|
|
|
If you can actually produce something useful, with a "minimum" of defects, that someone else can maintain, then I think you can call yourself a programmer; regardless of the platform.
That does not (automatically) qualify you to program a pace maker or a flight control system with all the IF's and ELSE's.
"Developing" is not the same as programming (or "coding").
I am a software "developer".
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
|
|
|
|
|
These are self imposed titles. A programmer is a programmer is a programmer. You can claim developer is better but a programmer is a developer is a programmer. Same thing. As much as the OP wants it to be engineer, or whatever. I have programmed for years on my own. Never employed as a programmer - but I am proficient enough that I am not really concerned about what language you'd like me to use (unless some technical specification makes in insane to make it work). I've gotten to a point a long time ago that it's just translation and what pre-exiting functions/classes/etc.. you have to work with. But, I also have a wide variety of knowledge to bring to the table that many programmers don't. Such as - my high end background in IT and business systems gives me a lot of knowledge about operating systems, servers (web/mail/database/routing/etc), security models, networking/network security, database design/implementation/security/tuning, accounting systems, double entry bookkeeping and accounting, tax code, legal issues (business, government, etc). Many computer languages: direct hex editing; various assemblers, COBOL, BASICs, PASCALs, Cs, C++s, SQLs, DDLs, VB(DOS)/VB(Windows)/VB.NET, C#, Java, JavaScript, VBScript, HTML, CSS, XML, etc., etc. and I've programed across many of these boundaries. Currently writing a billing system for a County Government using C#, Azure SQL Server, with some web components. Also, a mostly finished custom air handler control system using RaspberryPi with Python, MQTT, as well as designing the circuit board and components for a small datacenter I own and run.
However - don't worry about keeping all the code locked in my head. I know what I want to do - the general structure that I need to develop, the security concerns, the bookkeeping side of it all, the web server and security side of it all and I simply look up what I don't recall (which is a lot - specific syntax, data types, even finding the commands/classes/etc... that I want to utilize. Makes me a bit slower - but there's very little I can't develop. I even wrote 3D graphics rotation systems back in the early 80's on my Apple II - and my own multi-language complier. BUT - I doubt I would pass a programmer certification test - as they are typically very specific in what they want you to know off the top of your head - like about some language syntax or command use. Who cares - look it up. That's what the docs are for - and google But - should I be an apprentice? Or be excluded for working for a business as a programmer/coder/whatever you want to call it?
I think the employer/customer needs to take the time to know what they need in a programmer. Interview them. Figure out if they can do what they say they can - and then decide. Relying on licenses, certifications, titles, etc is the lazy persons way out of knowing what they actually need and having enough knowledge to see if that is who they have in front of them.
|
|
|
|
|
I think you expect too much from your "average" customer in terms of vetting a "programmer".
Makes about as much sense as me making a medical diagnosis, which didn't involve just an "aspirin".
There are "laws" to protect the consumer. Same difference.
And when I talk of "developing", that includes:
Scope / problem definition
User requirements analysis
Current system analysis
Preliminary / detail design
Presenting, gaining acceptance
Planning, estimating and allocating resources
Executing, monitoring and controlling
Unit, integration and system testing
User training and acceptance testing
Documentation
Turnover to production / maintenance.
Oh, and "programming".
And I have to carry $2,000,000 in "liability insurance". There's my "cred".
The Master said, 'Am I indeed possessed of knowledge? I am not knowing. But if a mean person, who appears quite empty-like, ask anything of me, I set it forth from one end to the other, and exhaust it.'
― Confucian Analects
modified 25-Jun-19 18:53pm.
|
|
|
|
|
And you honestly think because the customer see that a programmers has a cert that they are then vetted?
And yes - if you have a medical condition - do you not make some effort to figure out what it could be, or after going to a doctor - research their conclusions or get a second opinion if a serious issue? Due diligence...
Your list is fine - and doesn't define anything that is not programming. You don't just set down and start plunking the keyboard. You have to define the problem, figure out requirements, da, da, da... I learned nearly 40 years ago that your list is the basic steps of software development/programming. One in the same. Smaller programs may allow skipping some of this - especially when designing for your own purposes - as you are the end user and know what you want to do and so on. But if your are doing it for someone else - and you want to do a good job - what part of this do you leave out?
Maybe you make the distinction that someone hired to write code (a 'programmer') based on the specs given to them after a systems analyst has had at the project, and the user interface design team has worked up their parts, and the project manger has distributed the work amongst the 'programmers' - that these 'programmers' are not developers? I think any 'programmer' should always be a developer if that is your distinction. I don't think I have ever met anyone - self trained, college trained, etc... that looks at programming so narrowly. 'Development' is inherently part of programming in my view. Having a team to split the work load over doesn't absolve the 'programmers' from knowing, understanding, and participating in the overall process. If that's how some handle it - then I think this is poor managements and not taking advantage of the full resources of their programmers/developers/engineers. In my opinion - these are all programmers/software developers/software engineers - whatever - its just a matter of entry level, junior, senior rankings of whatever you want to call them. People are always playing with names. I don't want to be a janitor - I want to be the custodial engineer, or I don't want to be a secretary, I want to be the Front Desk Executive. Same here. We have a department at the state that calls their people that know how to change settings in their tax system software - programmers. Their administrator is the DBA. Names, names, names...
|
|
|
|
|