|
Home | Switchboard | Unix Administration | Red Hat | TCP/IP Networks | Neoliberalism | Toxic Managers |
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and bastardization of classic Unix |
Classic Computer Books | Classic Unix books | Best Books about Unix Tools | Best Red Hat Books for Preparation to Certification | Humor | Etc |
|
Unix shells such as bash 4.x are far from being simple and to find a good book on later version of bash(say 3.0 and up) is very difficult. also such notion as the best book depends on your background. So there is no single "best" book on shell for any level, be it introductory, intermediate or advanced. People with different background can benefit most from different books. In any case you need several, because the first one might be far from optimal for you and your level of technical sophistication in bash and Unix. Still some general recommendations apply.
Bash and ksh93 are burdened by legacy of 30 years development and mistakes made of early stages of development of such shells as Bourne shell (with its numerous warts and complete absence of the lexical level of the language). Still they are very important members of scripting languages family and newer scripting languages such as Perl, Python and Ruby still are unable to displaced them.
Bash is widely used in Unix/Linux environment and leaning programming in it it is a must language for any system administrator who respects himself/herself. Bourne shell and C-shell also influenced the creation of more modern scripting languages such as Perl. One recommendation is to keep your Bash scripts short. If the script exceeds, say, 300 lines, consider rewriting it in Perl, or other scripting language (Python or Ruby, if you know them well). That does not mean that long Bash script are a problem. But you need strict coding discipline to make them maintainable.
Only few books treat bash as a programming language. Among them only three definitely worth exploring (assuming that you are a sysadmin, who need to write small and medium size scripts):
In a way shells are underestimated members of the scripting language family. They still are higher level languages then any other scripting language. Moreover ksh93 and zsh are in some respects (coroutines and operations with pipes is one example) more modern and powerful then Perl. On the negative side they suffer from bizarre syntax, absence of lexical level, fuzzy semantic and, first of all, the huge burden of compatibility with older versions.
|
Due to this situation it is very difficult, almost impossible to write a good shell book. That's probably why there very few of them. Most shell books are "pulp fiction" where the author just repeat basic syntax information with few examples of usage without touching more complex issues of shell integration into Unix and its role in Unix way of thinking.
Also development of shells is very uneven. For example Bash 3.2 and later versions are still weaker that ksh93 as a scripting language (but in any case in Linux writing complex scripts moved to Perl), but is a much better interactive shell. It is also standard de facto on Linux, where it completely displaced ksh93 (I think only Oracle still using it in its scripts). I would like to stress again, that being superior scripting language for more-or-less complex scripts Perl is now competing with shell (both bash and ksh93). Perl interpreter now is available by default in all major version of Linux and Unix. As loading time of modern servers of Perl interpreter became negligible; so it is gradually displacing AWK for one liners. It is simpler to know one language instead of two.
One important advantage of bash that is has a downloadable debugger which is a nice thing and an improvement in the right direction.
If you want to learn shell programming, not just writing scripts that contain less then a dozen lines, you need several books on the subject as well as study available with OS example of shell programming.
Various books stresses different aspects of the language and complex issues of interaction with classic shell utilities such as grep, sed, awk, vi, find, etc are best covered in books different then those that cover the language on introductory or intermediate level.
For example a simple question of environment inheritance that is important for writing complex scripts. Or string processing capabilities of shell (see also String Operations in Shell ) or nuances shell arithmetic operations ( ((..)) operation . BTW most shells ( ksh93 is an exception) operate only with integers. See also Arithmetic Expressions in BASH)
See also my Unix Shells page.
Among introductory I would say that one of the few that is worth the money is Unix Shell Programming, Third Edition by Stephen Kochan & Patrick Wood. It should probably be used with Bash Cookbook: while presentation of key topics is adequate, they lack good, practical examples, the examples which can be found in Bash Cookbook
Many introductory shell books that try cover both ksh and C shell end with covering none well. One exception (for Solaris users only) is probably A Practical Guide to Solaris which managed to have weak coverage of three shells (and that's a rather strange idea to cover all three in the intro book) but as a compensation contains a good coverage of grep, sed and awk -- very useful utilities for shell scripting.
Another, more recent, but still decent intro book is Linux Command Line and Shell Scripting Bible
This is an average or slightly above average introductory book, oriented on newcomers to shell scripting. Looks like the author just added (( )) type of arithmetic expressions as a afterthought, while it should be taught as a primary construct. Similar situation with C-style loop available now in bash as well. One of the few books on shell scripting published after 2005. Unix Shell Programming, Third Edition by Stephen Kochan & Patrick Wood is a much better book. For everybody but absolute beginners, Classic Shell Scripting (May 1, 2005) might also be a better book, although it belong to intermediate level. But this is definitely a good alternative to Sobel's A Practical Guide to Linux Commands, Editors, and Shell Programming (3rd Edition) published in 2012.
BTW it somebody pretend to write a scripting bible he/she should be a scripting god. Neither author qualifies ; -). They are pretty average run of the mill instructors.
Notable quotes:
"... It has one of the best explanations for sed and gawk I have ever seen. ..."
You can also use introductory Linux book such as "average" quality books by Sobel. for example A Practical Guide to Fedora and Red Hat Enterprise Linux (7th Edition) which as of November 2015 costs around $11 used (not a bad price for 1300 pages ;-).
The litmus test on intermediate book is the level of pipes/redirection and coroutines coverage as well as coverage on Unix signals and exec. There are two intermediate book that I can recommend:
This is a great intermediate book on shell scripting. See my review Classic Shell Scripting. Can serve as a valuable add on to "Learning Korn shell" from O'Reilly (1st edition) -- which is also a very strong book on shell scripting.
The authors provide a lot of interesting and useful information that is difficult to find in other books. They devoted Ch 5 to piping and in 5.4 "Word List" they discuss famous Doug McIlroy alternative solution to Donald Knuth program of creating the list of the n most-frequent words, with counts of their frequency of occurrence, sorted by descending count from an arbitrary text file.
The authors discuss many Unix tools that are used with shell (Unix toolbox). They provide a very good (but too brief) discussion of grep and find. Discussion of xargs (which is usually a sign on a good book on scripting) includes /dev/null trick, but unfortunately they do not mention an option -0n with which this trick makes the most sense.
One of the best chapters of the book is Ch. 13 devoted to process control. Also good is Chapter 11 that provides a solution to pretty complex and practically important for many system administrators task of merging passwd files in Unix. It provides a perfect insight into solving real sysadmins problems using AWK and shell.
Shortcomings are few. in "5.2. Structured Data for the Web" the authors should probably list AWK instead of SED. Also XML processing generally requires using a lexical analyzer, not regular expressions. Therefore a tag list example would be better converted to something simpler, for example generating C-tags for vi.
This is definitely a good
intermediate level book on bash. Which is a pretty rare breed of bash books :-) The book is one
of the few that treat bash as a programming language. And bash in reality is a yet another
scripting language, along with being a glue to
Unix commands and command like interpreter.
Each chapter has a reference section at the end, which alone are worth the price of the book.
I think the level of the book is intermediate and the book will be most useful not for absolute
novices, but for system administrators, who already know some bash and who what to improve their
skills and write better scripts.
While written in 2004, the content is surprisingly modern. The author pays attention to important
but rarely understood details of bash language (and it is a complex non-orthogonal scripting
language, along with being command interpreter).
In this sense I would like to stress it again that this book is pretty unique in its approach to
bash, competing with very few books. I can name just one that use a similar approach: Pro Bash
Programming Scripting the GNU-Linux Shell, Second Edition (by Chris F. A. Johnson & Jayant Varma).
And despite the fact that the latter book was published in 2015, some elements of the language
(for example, integer variables) are treated better in this book, which was published 11 years
earlier, in 2004.
The book also covers some pretty exotic areas of shell programming such as writing interactive
programs. And does it well. At the same time that means that some parts of the books can (and
probably should) be skipped on the first reading.
The author also explains security issues connected with the scripts. And provides several amusing
anecdotes of sysadmin blunders, which can be includes into "sysadmin horror stories" book.
The books has a chapter on Web programming in which the author shows that bash can be used for
simple web access operations. That's another very positive feature of the book.
All in all, I would recommend this book as an intermediate text covering bash mainly as a
programming language, not so much as a command line interpreter (although the book contains some
unique tips for this area too; for example about interaction of bash and GNU readline with its
infamous inputrc file; the author shows some interesting examples of bind command usage; although
they might not work with bash 4.2 and modern version of readline, they still have some
educational value ).
There are no good advanced books on shell. The only one that probably might qualify is essentially a reference book that covers the most interesting features that are present in ksh93 (especially coroutines). In this respect nothing can replace the author view on the language as in The New Kornshell : Command and Programming Language.
Dr. Nikolai Bezroukov
|
Switchboard | ||||
Latest | |||||
Past week | |||||
Past month |
Jul 05, 2020 | leanpub.com
skeptic 5.0 out of 5 stars Reviewed in the United States on July 2, 2020A short (160 pages) book that covers some difficult aspects of bash needed to customize bash env.
Whether we want it or not, bash is the shell you face in Linux, and unfortunately, it is often misunderstood and misused. Issues related to creating your bash environment are not well addressed in existing books. This book fills the gap.
Few authors understand that bash is a complex, non-orthogonal language operating in a complex Linux environment. To make things worse, bash is an evolution of Unix shell and is a rather old language with warts and all. Using it properly as a programming language requires a serious study, not just an introduction to the basic concepts. Even issues related to customization of dotfiles are far from trivial, and you need to know quite a bit to do it properly.
At the same time, proper customization of bash environment does increase your productivity (or at least lessens the frustration of using Linux on the command line ;-)
The author covered the most important concepts related to this task, such as bash history, functions, variables, environment inheritance, etc. It is really sad to watch like the majorly of Linux users do not use these opportunities and forever remain on the "level zero" using default dotfiles with bare minimum customization.
This book contains some valuable tips even for a seasoned sysadmin (for example, the use of !& in pipes), and as such, is worth at least double of suggested price. It allows you intelligently customize your bash environment after reading just 160 pages and doing the suggested exercises.
Contents:
- Foreword
- Learn Bash the Hard Way
- Introduction
- Structure
- Part I - Core Bash
- What is Bash?
- Unpicking the Shell: Globbing and Quoting
- Variables in Bash
- Functions in Bash
- Pipes and redirects
- Scripts and Startups
- Part II - Scripting Bash
- Command Substitution and Evaluation
- Exit Codes
- Tests
- Loops
- The
set
Builtin- Process Substitution
- Subshells
- Internal Field Separator
- Part III - Bash Features
- Readline
- Terminal Codes and Non-Standard Characters
- The Prompt
- Here Documents
- History
- Bash in Practice
- Part IV - Advanced Bash
- Job Control
- Traps and Signals
- Advanced Variables
- String Manipulation
- Debugging Bash Scripts
- Autocomplete
- Example Bash Script
- Finished!
raymorris ( 2726007 ) , Sunday April 29, 2018 @02:05AM ( #56522343 ) JournalApr 30, 2018 | news.slashdot.org
Long-time Slashdot reader Martin S. pointed us to this an excerpt from the new book Live Work Work Work Die: A Journey into the Savage Heart of Silicon Valley by Portland-based investigator reporter Corey Pein.
The author shares what he realized at a job recruitment fair seeking Java Legends, Python Badasses, Hadoop Heroes, "and other gratingly childish classifications describing various programming specialities.
" I wasn't the only one bluffing my way through the tech scene. Everyone was doing it, even the much-sought-after engineering talent.
I was struck by how many developers were, like myself, not really programmers , but rather this, that and the other. A great number of tech ninjas were not exactly black belts when it came to the actual onerous work of computer programming. So many of the complex, discrete tasks involved in the creation of a website or an app had been automated that it was no longer necessary to possess knowledge of software mechanics. The coder's work was rarely a craft. The apps ran on an assembly line, built with "open-source", off-the-shelf components. The most important computer commands for the ninja to master were copy and paste...
[M]any programmers who had "made it" in Silicon Valley were scrambling to promote themselves from coder to "founder". There wasn't necessarily more money to be had running a startup, and the increase in status was marginal unless one's startup attracted major investment and the right kind of press coverage. It's because the programmers knew that their own ladder to prosperity was on fire and disintegrating fast. They knew that well-paid programming jobs would also soon turn to smoke and ash, as the proliferation of learn-to-code courses around the world lowered the market value of their skills, and as advances in artificial intelligence allowed for computers to take over more of the mundane work of producing software. The programmers also knew that the fastest way to win that promotion to founder was to find some new domain that hadn't yet been automated. Every tech industry campaign designed to spur investment in the Next Big Thing -- at that time, it was the "sharing economy" -- concealed a larger programme for the transformation of society, always in a direction that favoured the investor and executive classes.
"I wasn't just changing careers and jumping on the 'learn to code' bandwagon," he writes at one point. "I was being steadily indoctrinated in a specious ideology."
Anonymous Coward , Saturday April 28, 2018 @11:40PM ( #56522045 )
older generations already had a term for this ( Score: 5 , Interesting)Older generations called this kind of fraud "fake it 'til you make it."
The people who are smarter won't ( Score: 5 , Informative)brian.stinar ( 1104135 ) writes:> The people can do both are smart enough to build their own company and compete with you.
Been there, done that. Learned a few lessons. Nowadays I work 9:30-4:30 for a very good, consistent paycheck and let some other "smart person" put in 75 hours a week dealing with hiring, managing people, corporate strategy, staying up on the competition, figuring out tax changes each year and getting taxes filed six times each year, the various state and local requirements, legal changes, contract hassles, etc, while hoping the company makes money this month so they can take a paycheck and lay their rent.
I learned that I'm good at creating software systems and I enjoy it. I don't enjoy all-nighters, partners being dickheads trying to pull out of a contract, or any of a thousand other things related to running a start-up business. I really enjoy a consistent, six-figure compensation package too.
Re: ( Score: 2 )Cederic ( 9623 ) writes:* getting taxes filled eighteen times a year.
I pay monthly gross receipts tax (12), quarterly withholdings (4) and a corporate (1) and individual (1) returns. The gross receipts can vary based on the state, so I can see how six times a year would be the minimum.
Re: ( Score: 2 )serviscope_minor ( 664417 ) writes:Fuck no. Cost of full automation: $4m Cost of manual entry: $0 Opportunity cost of manual entry: $800/year
At worse, pay for an accountant, if you can get one that cheaply. Bear in mind talking to them incurs most of that opportunity cost anyway.
Re: ( Score: 2 )raymorris ( 2726007 ) writes:Nowadays I work 9:30-4:30 for a very good, consistent paycheck and let some other "smart person" put in 75 hours a week dealing with hiring
There's nothing wrong with not wnting to run your own business, it's not for most people, and even if it was, the numbers don't add up. But putting the scare qoutes in like that makes it sound like you have huge chip on your shoulder. Those things re just as essential to the business as your work and without them you wouldn't have the steady 9:30-4:30 with good paycheck.
Important, and dumb. ( Score: 3 , Informative)raymorris ( 2726007 ) writes:Of course they are important. I wouldn't have done those things if they weren't important!
I frequently have friends say things like "I love baking. I can't get enough of baking. I'm going to open a bakery.". I ask them "do you love dealing with taxes, every month? Do you love contract law? Employment law? Marketing? Accounting?" If you LOVE baking, the smart thing to do is to spend your time baking. Running a start-up business, you're not going to do much baking.
If you love marketing, employment law, taxes
Four tips for a better job. Who has more? ( Score: 3 )I can tell you a few things that have worked for me. I'll go in chronological order rather than priority order.
Make friends in the industry you want to be in. Referrals are a major way people get jobs.
Look at the job listings for jobs you'd like to have and see which skills a lot of companies want, but you're missing. For me that's Java. A lot companies list Java skills and I'm not particularly good with Java. Then consider learning the skills you lack, the ones a lot of job postings are looking for.
Certifi
goose-incarnated ( 1145029 ) , Sunday April 29, 2018 @02:34PM ( #56524475 ) Journal
Re: older generations already had a term for this ( Score: 5 , Insightful)cheekyboy ( 598084 ) writes:You don't understand the point of an ORM do you? I'd suggest reading why they existThey exist because programmers value code design more than data design. ORMs are the poster-child for square-peg-round-hole solutions, which is why all ORMs choose one of three different ways of squashing hierarchical data into a relational form, all of which are crappy.
If the devs of the system (the ones choosing to use an ORM) had any competence at all they'd design their database first because in any application that uses a database the database is the most important bit, not the OO-ness or Functional-ness of the design.
Over the last few decades I've seen programs in a system come and go; a component here gets rewritten, a component there gets rewritten, but you know what? They all have to work with the same damn data.
You can more easily switch out your code for new code with new design in a new language, than you can switch change the database structure. So explain to me why it is that you think the database should be mangled to fit your OO code rather than mangling your OO code to fit the database?
im sick of reinventors and new frameworks ( Score: 3 )gbjbaanb ( 229885 ) writes:Stick to the one thing for 10-15years. Often all this new shit doesn't do jack different to the old shit, its not faster, its not better. Every dick wants to be famous so make another damn library/tool with his own fancy name and feature, instead of enhancing an existing product.
Re: ( Score: 2 )Greyfox ( 87712 ) writes:amen to that.
Or kids who can't hack the main stuff, suddenly discover the cool new, and then they can pretend they're "learning" it, and when the going gets tough (as it always does) they can declare the tech to be pants and move to another.
hence we had so many people on the bandwagon for functional programming, then dumped it for ruby on rails, then dumped that for Node.js, not sure what they're on at currently, probably back to asp.net.
Re: ( Score: 2 )djinn6 ( 1868030 ) writes:How much code do you have to reuse before you're not really programming anymore? When I started in this business, it was reasonably possible that you could end up on a project that didn't particularly have much (or any) of an operating system. They taught you assembly language and the process by which the system boots up, but I think if I were to ask most of the programmers where I work, they wouldn't be able to explain how all that works...
Re: ( Score: 2 )Junta ( 36770 ) writes:It really feels like if you know what you're doing it should be possible to build a team of actually good programmers and put everyone else out of business by actually meeting your deliverables, but no one has yet. I wonder why that is.You mean Amazon, Google, Facebook and the like? People may not always like what they do, but they manage to get things done and make plenty of money in the process. The problem for a lot of other businesses is not having a way to identify and promote actually good programmers. In your example, you could've spent 10 minutes fixing their query and saved them days of headache, but how much recognition will you actually get? Where is your motivation to help them?
Re: ( Score: 2 )cheekyboy ( 598084 ) writes:It's not a "kids these days" sort of issue, it's *always* been the case that shameless, baseless self-promotion wins out over sincere skill without the self-promotion, because the people who control the money generally understand boasting more than they understand the technology. Yes it can happen that baseless boasts can be called out over time by a large enough mass of feedback from competent peers, but it takes a *lot* to overcome the tendency for them to have faith in the boasts.
It does correlate stron
Re: ( Score: 2 )Junta ( 36770 ) writes:And all these modern coders forget old lessons, and make shit stuff, just look at instagram windows app, what a load of garbage shit, that us old fuckers could code in 2-3 weeks.
Instagram - your app sucks, cookie cutter coders suck, no refinement, coolness. Just cheap ass shit, with limited usefulness.
Just like most of commercial software that's new - quick shit.
Oh and its obvious if your an Indian faking it, you haven't worked in 100 companies at the age of 29.
Re: ( Score: 2 )molarmass192 ( 608071 ) , Sunday April 29, 2018 @02:15AM ( #56522359 ) Homepage JournalHere's another problem, if faced with a skilled team that says "this will take 6 months to do right" and a more naive team that says "oh, we can slap that together in a month", management goes with the latter. Then the security compromises occur, then the application fails due to pulling in an unvetted dependency update live into production. When the project grows to handling thousands instead of dozens of users and it starts mysteriously folding over and the dev team is at a loss, well the choice has be
Re:older generations already had a term for this ( Score: 5 , Interesting)AmiMoJo ( 196126 ) writes: < mojo@@@world3...net > on Sunday April 29, 2018 @05:15AM ( #56522597 ) Homepage JournalThese restrictions is a large part of what makes Arduino programming "fun". If you don't plan out your memory usage, you're gonna run out of it. I cringe when I see 8MB web pages of bloated "throw in everything including the kitchen sink and the neighbor's car". Unfortunately, the careful and cautious way is a dying in favor of the throw 3rd party code at it until it does something. Of course, I don't have time to review it but I'm sure everybody else has peer reviewed it for flaws and exploits line by line.
Re:older generations already had a term for this ( Score: 4 , Informative)locketine ( 1101453 ) writes:Unfortunately, the careful and cautious way is a dying in favor of the throw 3rd party code at it until it does something.Of course. What is the business case for making it efficient? Those massive frameworks are cached by the browser and run on the client's system, so cost you nothing and save you time to market. Efficient costs money with no real benefit to the business.
If we want to fix this, we need to make bloat have an associated cost somehow.
Re: older generations already had a term for this ( Score: 2 )serviscope_minor ( 664417 ) writes:My company is dealing with the result of this mentality right now. We released the web app to the customer without performance testing and doing several majorly inefficient things to meet deadlines. Once real load was put on the application by users with non-ideal hardware and browsers, the app was infuriatingly slow. Suddenly our standard sub-40 hour workweek became a 50+ hour workweek for months while we fixed all the inefficient code and design issues.
So, while you're right that getting to market and opt
Re: ( Score: 2 )serviscope_minor ( 664417 ) writes:In the bad old days we had a hell of a lot of ridiculous restriction We must somehow made our programs to run successfully inside a RAM that was 48KB in size (yes, 48KB, not 48MB or 48GB), on a CPU with a clock speed of 1.023 MHz
We still have them. In fact some of the systems I've programmed have been more resource limited than the gloriously spacious 32KiB memory of the BBC model B. Take the PIC12F or 10F series. A glorious 64 bytes of RAM, max clock speed of 16MHz, but not unusual to run it 32kHz.
Re: ( Score: 2 )tlhIngan ( 30335 ) writes:So what are the uses for that? I am curious what things people have put these to use for.
It's hard to determine because people don't advertise use of them at all. However, I know that my electric toothbrush uses an Epson 4 bit MCU of some description. It's got a status LED, basic NiMH batteryb charger and a PWM controller for an H Bridge. Braun sell a *lot* of electric toothbrushes. Any gadget that's smarter than a simple switch will probably have some sort of basic MCU in it. Alarm system components, sensor
Re: ( Score: 3 , Insightful)Anonymous Coward writes:b) No computer ever ran at 1.023 MHz. It was either a nice multiple of 1Mhz or maybe a multiple of 3.579545Mhz (ie. using the TV output circuit's color clock crystal to drive the CPU).Well, it could be used to drive the TV output circuit, OR, it was used because it's a stupidly cheap high speed crystal. You have to remember except for a few frequencies, most crystals would have to be specially cut for the desired frequency. This occurs even today, where most oscillators are either 32.768kHz (real time clock
Re: ( Score: 2 , Interesting)Wraithlyn ( 133796 ) writes:Yeah, nice talk. You could have stopped after the first sentence. The other AC is referring to the Commodore C64 [wikipedia.org]. The frequency has nothing to do with crystal availability but with the simple fact that everything in the C64 is synced to the TV. One clock cycle equals 8 pixels. The graphics chip and the CPU take turns accessing the RAM. The different frequencies dictated by the TV standards are the reason why the CPU in the NTSC version of the C64 runs at 1.023MHz and the PAL version at 0.985MHz.
Re: ( Score: 2 )Anonymous Coward writes:LOL what exactly is so special about 16K RAM? https://yourlogicalfallacyis.c... [yourlogicalfallacyis.com]
I cut my teeth on a VIC20 (5K RAM), then later a C64 (which ran at 1.023MHz...)
Re: ( Score: 2 , Interesting)wierd_w ( 1375923 ) , Saturday April 28, 2018 @11:58PM ( #56522075 )Commodore 64 for the win. I worked for a company that made detection devices for the railroad, things like monitoring axle temperatures, reading the rail car ID tags. The original devices were made using Commodore 64 boards using software written by an employee at the one rail road company working with them.
The company then hired some electrical engineers to design custom boards using the 68000 chips and I was hired as the only programmer. Had to rewrite all of the code which was fine...
... A job fair can easily test this competency. ( Score: 4 , Interesting)ShanghaiBill ( 739463 ) , Sunday April 29, 2018 @01:50AM ( #56522321 )Many of these languages have an interactive interpreter. I know for a fact that Python does.
So, since job-fairs are an all day thing, and setup is already a thing for them -- set up a booth with like 4 computers at it, and an admin station. The 4 terminals have an interactive session with the interpreter of choice. Every 20min or so, have a challenge for "Solve this problem" (needs to be easy and already solved in general. Programmers hate being pimped without pay. They don't mind tests of skill, but hate being pimped. Something like "sort this array, while picking out all the prime numbers" or something.) and see who steps up. The ones that step up have confidence they can solve the problem, and you can quickly see who can do the work and who can't.
The ones that solve it, and solve it to your satisfaction, you offer a nice gig to.
Re:... A job fair can easily test this competency. ( Score: 5 , Informative)wierd_w ( 1375923 ) writes:Then you get someone good at sorting arrays while picking out prime numbers, but potentially not much else.The point of the test is not to identify the perfect candidate, but to filter out the clearly incompetent. If you can't sort an array and write a function to identify a prime number, I certainly would not hire you. Passing the test doesn't get you a job, but it may get you an interview
... where there will be other tests.
Re: ( Score: 2 )wierd_w ( 1375923 ) , Sunday April 29, 2018 @04:02AM ( #56522443 )BINGO!
(I am not even a professional programmer, but I can totally perform such a trivially easy task. The example tests basic understanding of loop construction, function construction, variable use, efficient sorting, and error correction-- especially with mixed type arrays. All of these are things any programmer SHOULD now how to do, without being overly complicated, or clearly a disguised occupational problem trying to get a free solution. Like I said, programmers hate being pimped, and will be turned off
Re: ... A job fair can easily test this competency ( Score: 5 , Insightful)luis_a_espinal ( 1810296 ) writes:Again, the quality applicant and the code monkey both have something the fakers do not-- Actual comprehension of what a program is, and how to create one.
As Bill points out, this is not the final exam. This is the "Oh, I see you do actually know how to program-- show me more" portion of the process. This is the part that HR drones are not capable of performing, due to Dunning-Krueger. Those that are actually, REALLY competent will do more than just satisfy the requirements of the challenge, they will provide actually working solutions to the challenge that properly validate their input, and return proper error states if the input is invalid, etc-- You can learn a LOT about a potential hire by observing their work. *THAT* is what this is really about. The triviality of the problem is a necessity, because you ***DON'T*** try to get free solutions out of people.
I realize that may be difficult for you to comprehend, but you *DON'T* do that. The job fair is to let people know that you have a position available, and try to curry interest in people to apply. A successful pre-screening is confidence building, and helps the potential hire to feel that your company is actually interested in actually hiring somebody, and not just fucking off in the booth, to cover for "failing to find somebody" and then "Getting yet another H1B". It gives them a chance to show you what they can do. That is what it is for, and what it does. It also excludes the fakers that this article is about-- The ones that can talk a good talk, but could not program a simple boolean check condition if their life depended on it.
If it were not for the time constraints of a job fair (usually only 2 days, and in that time you need to try and pre-screen as many as possible), I would suggest a tiered challenge, with progressively harder challenges, where you hand out resumes to the ones that make it to the top 3 brackets, but that is not the way the world works.
Re: ( Score: 2 )PaulRivers10 ( 4110595 ) writes:This in my opinion is really a waste of time. Challenges like this have to be so simple they can be done walking up to a booth are not likely to filter the "all talks" any better than a few interview questions could (imperson so the candidate can't just google it).Tougher more involved stuff isn't good either it gives a huge advantage to the full time job hunter, the guy or gal that already has a 9-5 and a family that wants to seem them has not got time for games. We have been struggling with hiring where I work ( I do a lot of the interviews ) and these are the conclusions we have reached
You would be surprised at the number of people with impeccable-looking resumes failing at something as simple as the FizzBuzz test [codinghorror.com]
Re: ... A job fair can easily test this competenc ( Score: 2 )Hognoxious ( 631665 ) writes:The only thing fuzzbuzz tests is "have you done fizzbuzz before"? It's a short question filled with every petty trick the author could think ti throw in there. If you haven't seen the tricks they trip you up for no reason related to your actual coding skills. Once you have seen them they're trivial and again unrelated to real work. Fizzbuzz is best passed by someone aiming to game the interview system. It passes people gaming it and trips up people who spent their time doing on the job real work.
Re: ( Score: 2 )luis_a_espinal ( 1810296 ) , Sunday April 29, 2018 @07:49AM ( #56522861 ) Homepagethey trip you up for no reason related to your actual codung skills.Bullshit!
filter the lame code monkeys ( Score: 4 , Informative)ShanghaiBill ( 739463 ) writes:Lame monkey tests select for lame monkeys.A good programmer first and foremost has a clean mind. Experience suggests puzzle geeks, who excel at contrived tests, are usually sloppy thinkers.
No. Good programmers can trivially knock out any of these so-called lame monkey tests. It's lame code monkeys who can't do it. And I've seen their work. Many night shifts and weekends I've burned trying to fix their shit because they couldn't actually do any of the things behind what you call "lame monkey tests", like:
pulling expensive invariant calculations out of loops using for loops to scan a fucking table to pull rows or calculate an aggregate when they could let the database do what it does best with a simple SQL statement systems crashing under actual load because their shitty code was never stress tested ( but it worked on my dev box! .) again with databases, having to redo their schemas because they were fattened up so much with columns like VALUE1, VALUE2,
... VALUE20 (normalize you assholes!) chatting remote APIs - because these code monkeys cannot think about the need for bulk operations in increasingly distributed systems. storing dates in unsortable strings because the idiots do not know most modern programming languages have a date data type. Oh and the most important, off-by-one looping errors. I see this all the time, the type of thing a good programmer can spot on quickly because he or she can do the so-called "lame monkey tests" that involve arrays and sorting.
I've seen the type: "I don't need to do this shit because I have business knowledge and I code for business and IT not google", and then they go and code and fuck it up... and then the rest of us have to go clean up their shit at 1AM or on weekends.
If you work as an hourly paid contractor cleaning that crap, it can be quite lucrative. But sooner or later it truly sucks the energy out of your soul.
So yeah, we need more lame monkey tests
... to filter the lame code monkeys.
Re: ( Score: 3 )Junta ( 36770 ) writes:Someone could Google the problem with the phone then step up and solve the challenge.If given a spec, someone can consistently cobble together working code by Googling, then I would love to hire them. That is the most productive way to get things done.
There is nothing wrong with using external references. When I am coding, I have three windows open: an editor, a testing window, and a browser with a Stackoverflow tab open.
Re: ( Score: 2 )bobstreo ( 1320787 ) writes:Yeah, when we do tech interviews, we ask questions that we are certain they won't be able to answer, but want to see how they would think about the problem and what questions they ask to get more data and that they don't just fold up and say "well that's not the sort of problem I'd be thinking of" The examples aren't made up or anything, they are generally selection of real problems that were incredibly difficult that our company had faced before, that one may not think at first glance such a position would
Nothing worse ( Score: 2 )Anonymous Coward , Sunday April 29, 2018 @12:34AM ( #56522157 )than spending weeks interviewing "good" candidates for an opening, selecting a couple and hiring them as contractors, then finding out they are less than unqualified to do the job they were hired for.
I've seen it a few times, Java "experts", Microsoft "experts" with years of experience on their resumes, but completely useless in coding, deployment or anything other than buying stuff from the break room vending machines.
That being said, I've also seen projects costing hundreds of thousands of dollars, with y
Re:Nothing worse ( Score: 4 , Insightful)Anonymous Coward writes:The moment you said "contractors", and you have lost any sane developer. Keep swimming, its not a fish.
Re: ( Score: 2 , Informative)Lanthanide ( 4982283 ) writes:I agree with this. I consider myself to be a good programmer and I would never go into contractor game. I also wonder, how does it take you weeks to interview someone and you still can't figure out if the person can't code? I could probably see that in 15 minutes in a pair coding session.
Also, Oracle, SAP, IBM... I would never buy from them, nor use their products. I have used plenty of IBM products and they suck big time. They make software development 100 times harder than it could be. Their technical supp
Re: ( Score: 2 )Anonymous Coward writes:It's weeks to interview multiple different candidates before deciding on 1 or 2 of them. Not weeks per person.
Re: ( Score: 3 , Insightful)pauljlucas ( 529435 ) writes:That being said, I've also seen projects costing hundreds of thousands of dollars, with years of delays from companies like Oracle, Sun, SAP, and many other "vendors"Software development is a hard thing to do well, despite the general thinking of technology becoming cheaper over time, and like health care the quality of the goods and services received can sometimes be difficult to ascertain. However, people who don't respect developers and the problems we solve are very often the same ones who continually frustrate themselves by trying to cheap out, hiring outsourced contractors, and then tearing their hair out when sub par results are delivered, if anything is even del
Re: ( Score: 2 )VeryFluffyBunny ( 5037285 ) writes:As part of your interview process, don't you have candidates code a solution to a problem on a whiteboard? I've interviewed lots of "good" candidates (on paper) too, but they crashed and burned when challenged with a coding exercise. As a result, we didn't make them job offers.
I do the opposite ( Score: 2 )Tony Isaac ( 1301187 ) writes:I'm not a great coder but good enough to get done what clients want done. If I'm not sure or don't think I can do it, I tell them. I think they appreciate the honesty. I don't work in a tech-hub, startups or anything like that so I'm not under the same expectations and pressures that others may be.
Bigger building blocks ( Score: 2 )Anonymous Coward writes:OK, so yes, I know plenty of programmers who do fake it. But stitching together components isn't "fake" programming.
Back in the day, we had to write our own code to loop through an XML file, looking for nuggets. Now, we just use an XML serializer. Back then, we had to write our own routines to send TCP/IP messages back and forth. Now we just use a library.
I love it! I hated having to make my own bricks before I could build a house. Now, I can get down to the business of writing the functionality I want, ins
Re: ( Score: 2 , Insightful)Tony Isaac ( 1301187 ) writes:But, I suspect you could write the component if you had to. That makes you a very different user of that component than someone who just knows it as a magic black box.
Because of this, you understand the component better and have real knowledge of its strengths and limitations. People blindly using components with only a cursory idea of their internal operation often cause major performance problems. They rarely recognize when it is time to write their own to overcome a limitation (or even that it is possibl
Re: ( Score: 2 )thesupraman ( 179040 ) writes:You're right on all counts. A person who knows how the innards work, is better than someone who doesn't, all else being equal. Still, today's world is so specialized that no one can possibly learn it all. I've never built a processor, as you have, but I still have been able to build a DNA matching algorithm for a major DNA lab.
I would argue that anyone who can skillfully use off-the-shelf components can also learn how to build components, if they are required to.
Ummm. ( Score: 2 )Tony Isaac ( 1301187 ) writes:1, 'Back in the Day' there was no XML, XMl was not very long ago.
2, its a parser, a serialiser is pretty much the opposite (unless this weeks fashion has redefined that.. anything is possible).
3, 'Back then' we didnt have TCP stacks...But, actually I agree with you. I can only assume the author thinks there are lots of fake plumbers because they dont cast their own toilet bowels from raw clay, and use pre-build fittings and pipes! That car mechanics start from raw steel scrap and a file.. And that you need
Re: ( Score: 2 )Tony Isaac ( 1301187 ) , Sunday April 29, 2018 @01:46AM ( #56522313 ) HomepageFor the record, XML was invented in 1997, you know, in the last century! https://en.wikipedia.org/wiki/... [wikipedia.org]
And we had a WinSock library in 1992. https://en.wikipedia.org/wiki/... [wikipedia.org]Yes, I agree with you on the "middle ground." My reaction was to the author's point that "not knowing how to build the components" was the same as being a "fake programmer."
Re:Bigger building blocks ( Score: 5 , Interesting)frank_adrian314159 ( 469671 ) writes:If I'm a plumber, and I don't know anything about the engineering behind the construction of PVC pipe, I can still be a good plumber. If I'm an electrician, and I don't understand the role of a blast furnace in the making of the metal components, I can still be a good electrician.
The analogy fits. If I'm a programmer, and I don't know how to make an LZW compression library, I can still be a good programmer. It's a matter of layers. These days, we specialize. You've got your low-level programmers that make the components, the high level programmers that put together the components, the graphics guys who do HTML/CSS, and the SQL programmers that just know about databases. Every person has their specialty. It's no longer necessary to be a low-level programmer, or jack-of-all-trades, to be "good."
If I don't know the layout of the IP header, I can still write quality networking software, and if I know XSLT, I can still do cool stuff with XML, even if I don't know how to write a good parser.
Re: ( Score: 3 )Tony Isaac ( 1301187 ) writes:I was with you until you said " I can still do cool stuff with XML".
Re: ( Score: 2 )careysub ( 976506 ) writes:LOL yeah I know it's all JSON now. I've been around long enough to see these fads come and go. Frankly, I don't see a whole lot of advantage of JSON over XML. It's not even that much more compact, about 10% or so. But the point is that the author laments the "bad old days" when you had to create all your own building blocks, and you didn't have a team of specialists. I for one don't want to go back to those days!
Re: ( Score: 3 )Cederic ( 9623 ) writes:The main advantage is that JSON is that it is consistent. XML has attributes, embedded optional stuff within tags. That was derived from the original SGML ancestor where is was thought to be a convenience for the human authors who were supposed to be making the mark-up manually. Programmatically it is a PITA.
Re: ( Score: 3 )Anonymous Coward writes:I got shit for decrying XML back when it was the trendy thing. I've had people apologise to me months later because they've realized I was right, even though at the time they did their best to fuck over my career because XML was the new big thing and I wasn't fully on board.
XML has its strengths and its place, but fuck me it taught me how little some people really fucking understand shit.
Silicon Valley is Only Part of the Tech Business ( Score: 2 , Informative)phantomfive ( 622387 ) writes:And a rather small part at that, albeit a very visible and vocal one full of the proverbial prima donas. However, much of the rest of the tech business, or at least the people working in it, are not like that. It's small groups of developers working in other industries that would not typically be considered technology. There are software developers working for insurance companies, banks, hedge funds, oil and gas exploration or extraction firms, national defense and many hundreds and thousands of other small
bonfire of fakers ( Score: 2 )Njovich ( 553857 ) , Sunday April 29, 2018 @05:35AM ( #56522641 )This is the reason I wish programming didn't pay so much....the field is better when it's mostly populated by people who enjoy programming.
Learn to code courses ( Score: 5 , Insightful)AndyKron ( 937105 ) writes:They knew that well-paid programming jobs would also soon turn to smoke and ash, as the proliferation of learn-to-code courses around the world lowered the market value of their skills, and as advances in artificial intelligence allowed for computers to take over more of the mundane work of producing software.Kind of hard to take this article serious after saying gibberish like this. I would say most good programmers know that neither learn-to-code courses nor AI are going to make a dent in their income any time soon.
Me? No ( Score: 2 )Escogido ( 884359 ) , Sunday April 29, 2018 @06:59AM ( #56522777 )As a non-programmer Arduino and libraries are my friends
in the silly cone valley ( Score: 5 , Interesting)quonset ( 4839537 ) , Sunday April 29, 2018 @07:20AM ( #56522817 )There is a huge shortage of decent programmers. I have personally witnessed more than one phone "interview" that went like "have you done this? what about this? do you know what this is? um, can you start Monday?" (120K-ish salary range)
Partly because there are way more people who got their stupid ideas funded than good coders willing to stain their resume with that. partly because if you are funded, and cannot do all the required coding solo, here's your conundrum:
- top level hackers can afford to be really picky, so on one hand it's hard to get them interested, and if you could get that, they often want some ownership of the project. the plus side is that they are happy to work for lots of equity if they have faith in the idea, but that can be a huge "if".
- "good but not exceptional" senior engineers aren't usually going to be super happy, as they often have spouses and children and mortgages, so they'd favor job security over exciting ideas and startup lottery.
- that leaves you with fresh-out-of-college folks, which are really really a mixed bunch. some are actually already senior level of understanding without the experience, some are absolutely useless, with varying degrees in between, and there's no easy way to tell which is which early.
so the not-so-scrupulous folks realized what's going on, and launched multiple coding boot camps programmes, to essentially trick both the students into believing they can become a coder in a month or two, and also the prospective employers that said students are useful. so far it's been working, to a degree, in part because in such companies coding skill evaluation process is broken. but one can only hide their lack of value add for so long, even if they do manage to bluff their way into a job.
Duh! ( Score: 4 , Insightful)swb ( 14022 ) , Sunday April 29, 2018 @07:48AM ( #56522857 )All one had to do was look at the lousy state of software and web sites today to see this is true. It's quite obvious little to no thought is given on how to make something work such that one doesn't have to jump through hoops.
I have many times said the most perfect word processing program ever developed was WordPefect 5.1 for DOS. Ones productivity was astonishing. It just worked.
Now we have the bloated behemoth Word which does its utmost to get in the way of you doing your work. The only way to get it to function is to turn large portions of its "features" off, and even then it still insists on doing something other than what you told it to do.
Then we have the abomination of Windows 10, which is nothing but Clippy on 10X steroids. It is patently obvious the people who program this steaming pile have never heard of simplicity. Who in their right mind would think having to "search" for something is more efficient than going directly to it? I would ask the question if these people wander around stores "searching" for what they're looking for, but then I realize that's how their entire life is run. They search for everything online rather than going directly to the source. It's no wonder they complain about not having time to things. They're always searching.
Web sites are another area where these people have no clue what they're doing. Anything that might be useful is hidden behind dropdown menus, flyouts, popup bubbles and intriately designed mazes of clicks needed to get to where you want to go. When someone clicks on a line of products, they shouldn't be harassed about what part of the product line they want to look at. Give them the information and let the user go where they want.
This rant could go on, but this article explains clearly why we have regressed when it comes to software and web design. Instead of making things simple and easy to use, using the one or two brain cells they have, programmers and web designers let the software do what it wants without considering, should it be done like this?
Tech industry churn ( Score: 3 )DaMattster ( 977781 ) , Sunday April 29, 2018 @08:39AM ( #56522979 )The tech industry has a ton of churn -- there's some technological advancement, but there's an awful lot of new products turned out simply to keep customers buying new licenses and paying for upgrades.
This relentless and mostly phony newness means a lot of people have little experience with current products. People fake because they have no choice. The good ones understand the general technologies and problems they're meant to solve and can generally get up to speed quickly, while the bad ones are good at faking it but don't really know what they're doing. Telling the difference from the outside is impossible.
Sales people make it worse, promoting people as "experts" in specific products or implementations because the people have experience with a related product and "they're all the same". This burns out the people with good adaption skills.
Interesting ( Score: 3 )ElitistWhiner ( 79961 ) writes:From the summary, it sounds like a lot of programmers and software engineers are trying to develop the next big thing so that they can literally beg for money from the elite class and one day, hopefully, become a member of the aforementioned. It's sad how the middle class has been utterly decimated in the United States that some of us are willing to beg for scraps from the wealthy. I used to work in IT but I've aged out and am now back in school to learn automotive technology so that I can do something other than being a security guard. Currently, the only work I have been able to find has been in the unglamorous security field.
I am learning some really good new skills in the automotive program that I am in but I hate this one class called "Professionalism in the Shop." I can summarize the entire class in one succinct phrase, "Learn how to appeal to, and communicate with, Mr. Doctor, Mr. Lawyer, or Mr. Wealthy-man." Basically, the class says that we are supposed to kiss their ass so they keep coming back to the Audi, BMW, Mercedes, Volvo, or Cadillac dealership. It feels a lot like begging for money on behalf of my employer (of which very little of it I will see) and nothing like professionalism. Professionalism is doing the job right the first time, not jerking the customer off. Professionalism is not begging for a 5 star review for a few measly extra bucks but doing absolute top quality work. I guess the upshot is that this class will be the easiest 4.0 that I've ever seen.
There is something fundamentally wrong when the wealthy elite have basically demanded that we beg them for every little scrap. I can understand the importance of polite and professional interaction but this prevalent expectation that we bend over backwards for them crosses a line with me. I still suck it up because I have to but it chafes my ass to basically validate the wealthy man.
Natural talent... ( Score: 2 )fahrbot-bot ( 874524 ) writes:In 70's I worked with two people who had a natural talent for computer science algorithms
.vs. coding syntax. In the 90's while at COLUMBIA I worked with only a couple of true computer scientists out of 30 students. I've met 1 genius who programmed, spoke 13 languages, ex-CIA, wrote SWIFT and spoke fluent assembly complete with animated characters. According to the Bluff Book, everyone else without natural talent fakes it. In the undiluted definition of computer science, genetics roulette and intellectual d
Other book sells better and is more interesting ( Score: 2 )Anonymous Coward writes:New Book Describes 'Bluffing' Programmers in Silicon ValleyIt's not as interesting as the one about "fluffing" [urbandictionary.com] programmers.
Re: ( Score: 3 , Funny)luis_a_espinal ( 1810296 ) writes:Ah yes, the good old 80:20 rule, except it's recursive for programmers.
80% are shit, so you fire them. Soon you realize that 80% of the remaining 20% are also shit, so you fire them too. Eventually you realize that 80% of the 4% remaining after sacking the 80% of the 20% are also shit, so you fire them!
...
The cycle repeats until there's just one programmer left: the person telling the joke.
---
tl;dr: All programmers suck. Just ask them to review their own code from more than 3 years ago: they'll tell you that
Re: ( Score: 3 )Anonymous Coward , Sunday April 29, 2018 @01:17AM ( #56522241 )Who gives a fuck about lines? If someone gave me JavaScript, and someone gave me minified JavaScript, which one would I want to maintain?I donâ(TM)t care about your line savings, less isnâ(TM)t always better.
Because the world of programming is not centered about JavasScript and reduction of lines is not the same as minification. If the first thing that came to your mind was about minified JavaScript when you saw this conversation, you are certainly not the type of programmer I would want to inherit code from.
See, there's a lot of shit out there that is overtly redundant and unnecessarily complex. This is specially true when copy-n-paste code monkeys are left to their own devices for whom code formatting seems
Re:Most "Professional programmers" are useless. ( Score: 4 , Interesting)Anonymous Coward , Sunday April 29, 2018 @01:40AM ( #56522299 )I have a theory that 10% of people are good at what they do. It doesn't really matter what they do, they will still be good at it, because of their nature. These are the people who invent new things, who fix things that others didn't even see as broken and who automate routine tasks or simply question and erase tasks that are not necessary. If you have a software team that contain 5 of these, you can easily beat a team of 100 average people, not only in cost but also in schedule, quality and features. In theory they are worth 20 times more than average employees, but in practise they are usually paid the same amount of money with few exceptions.
80% of people are the average. They can follow instructions and they can get the work done, but they don't see that something is broken and needs fixing if it works the way it has always worked. While it might seem so, these people are not worthless. There are a lot of tasks that these people are happily doing which the 10% don't want to do. E.g. simple maintenance work, implementing simple features, automating test cases etc. But if you let the top 10% lead the project, you most likely won't be needed that much of these people. Most work done by these people is caused by themselves, by writing bad software due to lack of good leader.
10% are just causing damage. I'm not talking about terrorists and criminals. I have seen software developers who have tried (their best?), but still end up causing just damage to the code that someone else needs to fix, costing much more than their own wasted time. You really must use code reviews if you don't know your team members, to find these people early.
Re:Most "Professional programmers" are useless. ( Score: 5 , Funny)raymorris ( 2726007 ) , Sunday April 29, 2018 @01:51AM ( #56522329 ) Journalto find these people earlyand promote them to management where they belong.
Seems about right. Constantly learning, studying ( Score: 5 , Insightful)gbjbaanb ( 229885 ) writes:That seems about right to me.
I have a lot of weaknesses. My people skills suck, I'm scrawny, I'm arrogant. I'm also generally known as a really good programmer and people ask me how/why I'm so much better at my job than everyone else in the room. (There are a lot of things I'm not good at, but I'm good at my job, so say everyone I've worked with.)
I think one major difference is that I'm always studying, intentionally working to improve, every day. I've been doing that for twenty years.
I've worked with people who have "20 years of experience"; they've done the same job, in the same way, for 20 years. Their first month on the job they read the first half of "Databases for Dummies" and that's what they've been doing for 20 years. They never read the second half, and use Oracle database 18.0 exactly the same way they used Oracle Database 2.0 - and it was wrong 20 years ago too. So it's not just experience, it's 20 years of learning, getting better, every day. That's 7,305 days of improvement.
Re: ( Score: 2 )m00sh ( 2538182 ) writes:I think I can guarantee that they are a lot better at their jobs than you think, and that you are a lot worse at your job than you think too.
Re: ( Score: 2 )raymorris ( 2726007 ) writes:That seems about right to me.I have a lot of weaknesses. My people skills suck, I'm scrawny, I'm arrogant. I'm also generally known as a really good programmer and people ask me how/why I'm so much better at my job than everyone else in the room. (There are a lot of things I'm not good at, but I'm good at my job, so say everyone I've worked with.)
I think one major difference is that I'm always studying, intentionally working to improve, every day. I've been doing that for twenty years.
I've worked with people who have "20 years of experience"; they've done the same job, in the same way, for 20 years. Their first month on the job they read the first half of "Databases for Dummies" and that's what they've been doing for 20 years. They never read the second half, and use Oracle database 18.0 exactly the same way they used Oracle Database 2.0 - and it was wrong 20 years ago too. So it's not just experience, it's 20 years of learning, getting better, every day. That's 7,305 days of improvement.
If you take this attitude towards other people, people will not ask your for help. At the same time, you'll be also be not able to ask for their help.
You're not interviewing your peers. They are already in your team. You should be working together.
I've seen superstar programmers suck the life out of project by over-complicating things and not working together with others.
Which part? Learning makes you better? ( Score: 2 )phantomfive ( 622387 ) writes:You quoted a lot. Is there one part exactly do you have in mind? The thesis of my post is of course "constant learning, on purpose, makes you better"
> you take this attitude towards other people, people will not ask your for help. At the same time, you'll be also be not able to ask for their help.
Are you saying that trying to learn means you can't ask for help, or was there something more specific? For me, trying to learn means asking.
Trying to learn, I've had the opportunity to ask for help from peop
Re: ( Score: 2 )complete loony ( 663508 ) writes:The difference between a smart programmer who succeeds and a stupid programmer who drops out is that the smart programmer doesn't give up.
Re: ( Score: 2 )serviscope_minor ( 664417 ) writes:In other words;
What is often mistaken for 20 years' experience, is just 1 year's experience repeated 20 times.
Re: ( Score: 2 )asifyoucare ( 302582 ) , Sunday April 29, 2018 @08:49AM ( #56522999 )10% are just causing damage. I'm not talking about terrorists and criminals.
Terrorists and criminals have nothing on those guys. I know guy who is one of those. Worse, he's both motivated and enthusiastic. He also likes to offer help and advice to other people who don't know the systems well.
Re:Most "Professional programmers" are useless. ( Score: 5 , Insightful)gweihir ( 88907 ) writes:Good point. To quote Kurt von Hammerstein-Equord:
"I divide my officers into four groups. There are clever, diligent, stupid, and lazy officers. Usually two characteristics are combined. Some are clever and diligent -- their place is the General Staff. The next lot are stupid and lazy -- they make up 90 percent of every army and are suited to routine duties. Anyone who is both clever and lazy is qualified for the highest leadership duties, because he possesses the intellectual clarity and the composure necessary for difficult decisions. One must beware of anyone who is stupid and diligent -- he must not be entrusted with any responsibility because he will always cause only mischief."
Re: ( Score: 2 )apoc.famine ( 621563 ) writes:Oops. Good thing I never did anything military. I am definitely in the "clever and lazy" class.
Re: ( Score: 2 )Software_Dev_GL ( 5377065 ) writes:I was just thinking the same thing. One of my passions in life is coming up with clever ways to do less work while getting more accomplished.
Re: ( Score: 2 )gweihir ( 88907 ) writes:It's called the Pareto Distribution [wikipedia.org]. The number of competent people (people doing most of the work) in any given organization goes like the square root of the number of employees.
Re: ( Score: 2 )geoskd ( 321194 ) writes:Matches my observations. 10-15% are smart, can think independently, can verify claims by others and can identify and use rules in whatever they do. They are not fooled by things "everybody knows" and see standard-approaches as first approximations that, of course, need to be verified to work. They do not trust anything blindly, but can identify whether something actually work well and build up a toolbox of such things.
The problem is that in coding, you do not have a "(mass) production step", and that is the
Re: ( Score: 2 )Tablizer ( 95088 ) , Sunday April 29, 2018 @01:54AM ( #56522331 ) JournalIn basic concept I agree with your theory, it fits my own anecdotal experience well, but I find that your numbers are off. The top bracket is actually closer to 20%. The reason it seems so low is that a large portion of the highly competent people are running one programmer shows, so they have no co-workers to appreciate their knowledge and skill. The places they work do a very good job of keeping them well paid and happy (assuming they don't own the company outright), so they rarely if ever switch jobs.
The
Re:Most "Professional programmers" are useless. ( Score: 4 , Interesting)Cesare Ferrari ( 667973 ) writes:at least 70, probably 80, maybe even 90 percent of professional programmers should just fuck off and do something else as they are useless at programming.Programming is statistically a dead-end job. Why should anyone hone a dead-end skill that you won't be able to use for long? For whatever reason, the industry doesn't want old programmers.
Otherwise, I'd suggest longer training and education before they enter the industry. But that just narrows an already narrow window of use.
Re: ( Score: 2 )gweihir ( 88907 ) writes:Well, it does rather depend on which industry you work in - i've managed to find interesting programming jobs for 25 years, and there's no end in sight for interesting projects and new avenues to explore. However, this isn't for everyone, and if you have good personal skills then moving from programming into some technical management role is a very worthwhile route, and I know plenty of people who have found very interesting work in that direction.
Re: ( Score: 3 , Insightful)gweihir ( 88907 ) writes:I think that is a misinterpretation of the facts. Old(er) coders that are incompetent are just much more obvious and usually are also limited to technologies that have gotten old as well. Hence the 90% old coders that can actually not hack it and never really could get sacked at some time and cannot find a new job with their limited and outdated skills. The 10% that are good at it do not need to worry though. Who worries there is their employers when these people approach retirement age.
Re: ( Score: 2 )tomhath ( 637240 ) writes:My experience as an IT Security Consultant (I also do some coding, but only at full rates) confirms that. Most are basically helpless and many have negative productivity, because people with a clue need to clean up after them. "Learn to code"? We have far too many coders already.
Re: ( Score: 2 )DaMattster ( 977781 ) writes:You can't bluff you way through writing software, but many, many people have bluffed their way into a job and then tried to learn it from the people who are already there. In a marginally functional organization those incompetents are let go pretty quickly, but sometimes they stick around for months or years.
Apparently the author of this book is one of those, probably hired and fired several times before deciding to go back to his liberal arts roots and write a book.
Re: ( Score: 2 )gweihir ( 88907 ) writes:There are some mechanics that bluff their way through an automotive repair. It's the same damn thing
Re: ( Score: 2 )phantomfive ( 622387 ) writes:I think you can and this is by far not the first piece describing that. Here is a classic: https://blog.codinghorror.com/... [codinghorror.com]
Yet these people somehow manage to actually have "experience" because they worked in a role they are completely unqualified to fill.
Re: ( Score: 2 )Fiddling with JavaScript libraries to get a fancy dancy interface that makes PHB's happy is a sought-after skill, for good or bad. Now that we rely more on half-ass libraries, much of "programming" is fiddling with dark-grey boxes until they work good enough.This drives me crazy, but I'm consoled somewhat by the fact that it will all be thrown out in five years anyway.
Nov 18, 2017 | msdn.microsoft.com
Before we get to this year's list of FREE eBooks, a few answers to common questions I receive during my FREE EBOOK GIVEAWAY:
- How many can you download?
- ANSWER: As many as you want! This is a FREE eBook giveaway, so please download as many as interest you.
- Wow, there are a LOT listed here. Is there a way to download all of them at once?
- ANSWER: Yes, please see the note below on how to do this.
- Can I share a link to your post to let others know about this giveaway?
- ANSWER: Yes, please do share the good news with anyone you feel could benefit from this.
- I know you said they are "Free," but what's the catch?
- ANSWER: There is no catch. They really are FREE . This consider it a, "Thank you," for being a reader of my blog and a customer or partner of Microsoft.
- Ok, so if they are free and you're encouraging us to share this with others, can I post a link to your post here on sites like Reddit, FatWallet, and other deal share sites to let them know, or is that asking too much?
- ANSWER: Please do. In fact, I would encourage you to share a link to this post on any deal site you feel their users could benefit from the FREE eBooks and resources included below. Again, I WANT to give away MILLIONS of FREE eBooks!
- Are these "time-bombed" versions of the eBooks that stop working after a certain amount of time or reads?
- ANSWER: No, these are the full resources for you to use.
Ok, ready for some FREE eBooks? Below is the collection I am posting this year (which includes a ton of new eBooks & resources, as well as some of the favorites from previous years):
... ... ...
PowerShell Microsoft Dynamics GP 2015 R2 PowerShell Users Guide PowerShell PowerShell Integrated Scripting Environment 3.0 PowerShell Simplify Group Policy administration with Windows PowerShell PowerShell Windows PowerShell 3.0 Examples PowerShell Windows PowerShell 3.0 Language Quick Reference PowerShell WINDOWS POWERSHELL 4.0 LANGUAGE QUICK REFERENCE PowerShell Windows PowerShell 4.0 Language Reference Examples PowerShell Windows PowerShell Command Builder User's Guide PowerShell Windows PowerShell Desired State Configuration Quick Reference PowerShell WINDOWS POWERSHELL INTEGRATED SCRIPTING ENVIRONMENT 4.0 PowerShell Windows PowerShell Web Access PowerShell WMI in PowerShell 3.0 PowerShell WMI in Windows PowerShell 4.0