background preloader

Contributions Appearing in the Book

Contributions Appearing in the Book

Don't Call Yourself A Programmer, And Other Career Advice If there was one course I could add to every engineering education, it wouldn’t involve compilers or gates or time complexity. It would be Realities Of Your Industry 101, because we don’t teach them and this results in lots of unnecessary pain and suffering. This post aspires to be README.txt for your career as a young engineer. The goal is to make you happy, by filling in the gaps in your education regarding how the “real world” actually works. It took me about ten years and a lot of suffering to figure out some of this, starting from “fairly bright engineer with low self-confidence and zero practical knowledge of business.” 90% of programming jobs are in creating Line of Business software: Economics 101: the price for anything (including you) is a function of the supply of it and demand for it. There are companies which create software which actually gets used by customers, which describes almost everything that you probably think of when you think of software. “Read ad. Anyhow.

You're crap and paid too much for the little work you actually do 3 Big data security analytics techniques you can apply now to catch advanced persistent threats You’re not getting paid as well as you should. I know this not only because you’re bothering to read this, but also because most techies are crap at extracting cash from their employers. It shouldn’t shock you too much to learn that I, as a City headhunter and former contractor, focus quite hard on money - so here's a few ideas that will help you even in tough times. Continuous Visible Productivity The first thing you get wrong is spending too much time on things no one sees. Plan your work in terms of things other people can see; forget agile dependency modelling, GANTT, etcetera and prioritise with respect to how many useful people see the result. The joy of CVP is that its cynicism is so pure you can openly share it with your boss – he is under constant attack for the cost of IT which to “the business” seems so rarely to actually produce anything. Why you are paid Screwing up to get more money

Signs that you're a good programmer - Software Engineering Tips The most frequently viewed page on this site is Signs you're a bad programmer, which has also now been published on dead trees by Hacker Monthly, and I think that behoves me to write its antithesis. "Bad programmer" is also considered inflammatory by some who think I'm speaking down to them. Not so; it was personal catharsis from an author who exhibited many of those problems himself. And what I think made the article popular was the "remedies"--I didn't want someone to get depressed when they recognized themselves, I wanted to be constructive. Therefore if you think you're missing any of the qualities below, don't be offended. 1. The compiler and runtime can often answer a question faster than a human can. Symptoms How to acquire this trait Are you excessively cautious? Much of what makes people timid to experiment is chemical--your brain has a small number of adrenergic receptors, so a little bit of adrenaline excites your fight-or-flight reflexes too much. 2. 3. 4. 5. 1. 2. 3.

resources - What is the single most influential book every programmer should read Signs that you're a bad programmer - Software Engineering Tips Why was this written? Most of these faults were discovered the hard way by the author himself, either because he committed them himself or saw them in the work of others. This paper is not meant for grading programmers, it was intended to be read by programmers who trust their ability to judge when something is a sign of bad practice, and when it's a consequence of special circumstances. This paper was written to force its author to think, and published because he thinks you lot would probably get a kick out of it, too. 1. Reasoning about code means being able to follow the execution path ("running the program in your head") while knowing what the goal of the code is. Symptoms Remedies To get over this deficiency a programmer can practice by using the IDE's own debugger as an aide, if it has the ability to step through the code one line at a time. 2. Object Oriented Programming is an example of a language model, as is Functional or Declarative programming. 3. 4. 5. 6. 1. 2. 3. 4. 5. Symptoms

Wykłady PW struktury danych, grafy, algorytmy Najbardziej znanym i rozpowszechnionym algorytmem wyszukiwania najkrótszych ścieżek w grafie z jednym źródłem jest algorytm Dijkstry. Został on opracowany w roku 1959r. przez jednego z najsłynniejszych pionierów informatyki - zajrzyjcie od razu do Wikipedii. Algorytm Dijkstry wyznacza najkrótsze ścieżki z jednego wybranego węzła (źródła) do pozostałych węzłów grafu. Bardzo ważnym warunkiem koniecznym do poprawnego działania tego algorytmu jest to, by wszystkie krawędzie grafu posiadały nieujemne wagi. W naszych rozważaniach będziemy zajmowali się grafami spójnym i nieskierowanymi, jednakże metoda Dijkstry działa również dla skierowanych grafów (które są tak naprawdę nadzbiorem grafów nieskierowanych). Poniżej przedstawiamy przykładowy graf z wyznaczonymi najkrótszymi ścieżkami z węzła znajdującego się w lewym-górnym rogu (o wartości etykiety równej 0): Metoda Dijkstry polega na wprowadzeniu podziału zbioru wierzchołków grafu na trzy zbiory: Idea omawianego algorytmu jest następująca.

The Twelve-Factor App The demise of the low level Programmer. « #AltDevBlogADay When I started programming many of the elements we take for granted now, did not exist. There was no DirectX and not many compatible libs were available for the free compilers of the day. So I had to write my own code for most basic programs, keyboard handlers, mouse handlers, video memory accessors, rasterizers, texture mappers, blitters… the programs I wrote then were 100% my own code and I had to be able to handle anything and everything. Personally I’ve always been interested in what was going on under the hood so this suited me just fine. Combine the two and what you get today is someone who enjoys spending 5 days making that single function 20x faster, who revels in reducing the memory footprint of the primary data structure by 1 byte per element across the entire program whilst simultaneously writing a pre-caching system to avoid the special case issues…. who… well you get the picture… I’m an OCD level sport optimizing geek.

gerrit - Gerrit Code Review Web based code review and project management for Git based projects. Objective Gerrit is a web based code review system, facilitating online code reviews for projects using the Git version control system. Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer. Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer. To see Gerrit in the wild, checkout our ShowCases page. News Resources Background | Downloads | Plugins | Documentation | Release Notes | Issue Tracking | Scaling | Training Discussion List | IRC freenode #gerrit | IRC log

university lectures computer science Whether your goal is to earn a promotion, graduate at the top of your class, or just accelerate your life, lectures can help get you there. Our archives of lectures cover a huge range of topics and have all been handpicked and carefully designed by experienced instructors throughout the world who are dedicated to helping you take the next step toward meeting your career goals. Lifelong learns can turn their free time turn into self-improvement time. The online lectures on this list are more than lecture notes or a slideshow on a topic -- they were designed for audiences like you, with carefully sequenced themes and topics taught by veteran educators, and often with additional resources for your own independent study. The lectures are available to anybody, completely free of charge. Lecture courses are a valid and vital learning tool, and may be one of the best methods of learning available.

Primary Objects - Using Artificial Intelligence to Write Self-Modifying/Improving Programs Introduction Is it possible for a computer program to write its own programs? Could human software developers be replaced one day by the very computers that they master? Just like the farmer, the assembly line worker, and the telephone operator, could software developers be next? While this kind of idea seems far-fetched, it may actually be closer than we think. This article describes an experiment to produce an AI program, capable of developing its own programs, using a genetic algorithm implementation with self-modifying and self-improving code. "hello" The above programming code was created by an artificial intelligence program, designed to write programs with self-modifying and self-improving code. All code for the AI program is available at GitHub. Artificial Intelligence Takes Up Coding Artificial intelligence has been progressing steadily over the years, along with advances in computer technology, hardware, memory, and CPU speeds. An AI Hobby A Lot of Monkeys and Broken Typewriters 1.

practicing-programming - steveyegge2 Back in October I wrote an essay in which I compared programming to other professions. In it, I made the unsubstantiated claim that programming is unusual, in that most programmers don't practice their craft -- at least, not in any disciplined or regular way. Those are, of course, fightin' words, so I figured I'd write a bit more about it. What exactly does it mean to practice becoming a better programmer? Well, of course the boring dictionary definition is: "To do or perform something repeatedly in order to acquire or polish a skill." If you're still awake after that mind-numbing paragraph, then I think you're ready to give it a try! Incidentally, I toyed with the idea of coining a new word for "study and practice", like I did with servware. Contrary to what you might believe, merely doing your job every day doesn't qualify as real practice. The great engineers I know are as good as they are because they practice all the time. Smarts vs. We hire for smarts and for skills. OK, got it.

Stand on the shoulders of the Stack Overflow Giants. There's a wealth of information on StackOverflow. If you're a developer, you've definitely appreciated StackOverflow and the exceptional community. If you get a kick out of giving back, being held accountable to your understanding and articulation of technical topics, or simply enjoy problem solving, you may spend a significant amount of time on the site. Stack-Ed is a very simple site that provides a portal into the the most reputable StackOverflow contributors and their accepted answers to questions. Start by selecting a topic then freely peruse the contributors with the highest reputations. This idea was inspired by several utilities shared on HackerNews lately, as well as a recent addiction to StackOverflow. Think of Stack-Ed as an educational resource. Update: March 7th, Stack-Ed now encompasses all the various StackExchange sites.

Related: