Showing posts with label Communication. Show all posts
Showing posts with label Communication. Show all posts

So You Want to be a Programmer

So You Want to be a Programmer

so_you_want_to_be_a_programmer_apkfabia
so_you_want_to_be_a_programmer

Here's my recipe for programming success:

  • Get interested in programming, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in your ten years/10,000 hours.
  • Program. The best kind of learning is learning by doing. To put it more technically, "the maximal level of performance for individuals in a given domain is not attained automatically as a function of extended experience, but the level of performance can be increased even by highly experienced individuals as a result of deliberate efforts to improve and the most effective learning requires a well-defined task with an appropriate difficulty level for the particular individual, informative feedback, and opportunities for repetition and corrections of errors." (p. 20-21) The book Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life is an interesting reference for this viewpoint.
  • Talk with other programmers; read other programs. This is more important than any book or training course.
  • If you want, put in four years at a college (or more at a graduate school). This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don't enjoy school, you can (with some dedication) get similar experience on your own or on the job. In any case, book learning alone won't be enough. "Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter" says Eric Raymond, author of The New Hacker's Dictionary. One of the best programmers I ever hired had only a High School degree; he's produced a lot of great software, has his own news group, and made enough in stock options to buy his own nightclub.
  • Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. When you're the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you're the worst, you learn what the masters do, and you learn what they don't like to do (because they make you do it for them).
  • Work on projects after other programmers. Understand a program written by someone else. See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain them after you.
  • Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).
  • Remember that there is a "computer" in "computer science". Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk. (Answers here below.)
  • Answers

    Approximate timing for various operations on a typical PC:
    execute typical instruction1/1,000,000,000 sec = 1 nanosec
    fetch from L1 cache memory0.5 nanosec
    branch misprediction5 nanosec
    fetch from L2 cache memory7 nanosec
    Mutex lock/unlock25 nanosec
    fetch from main memory100 nanosec
    send 2K bytes over 1Gbps network20,000 nanosec
    read 1MB sequentially from memory250,000 nanosec
    fetch from new disk location (seek)8,000,000 nanosec
    read 1MB sequentially from disk20,000,000 nanosec
    send packet US to Europe and back150 milliseconds = 150,000,000 nanosec
  • Get involved in a language standardization effort. It could be the ANSI C++ committee, or it could be deciding if your local coding style will have 2 or 4 space indentation levels. Either way, you learn about what other people like in a language, how deeply they feel so, and perhaps even a little about why they feel so.
  • Have the good sense to get off the language standardization effort as quickly as possible.
With all that in mind, its questionable how far you can get just by book learning. Before my first child was born, I read all the How To books, and still felt like a clueless novice. 30 Months later, when my second child was due, did I go back to the books for a refresher? No. Instead, I relied on my personal experience, which turned out to be far more useful and reassuring to me than the thousands of pages written by experts.

Source:- http://norvig.com/21-days.html
I want to thank him for this useful information to us

Feel Free To Comment..
See also->> the-early-hackers
Facebook Comments

What Is Linux - a Brief History

Linux_all_ApkFabia
Linux
Linux is an operating system that evolved from a kernel created by Linus Torvalds when he was a student at the University of Helsinki. Generally, it is obvious to most people what Linux is. However, both for political and practical reasons, it needs to be explained further. To say that Linux is an operating system means that it's meant to be used as an alternative to other operating systems, Windows, Mac OS, MS-DOS, Solaris and others. Linux is not a program like a word processor and is not a set of programs like an office suite. Linux is an interface between computer/server hardware, and the programs which run on it.

A brief history of Linux
Linus_Torvalds_ApkFabia
Linus Torvalds, principal author of the Linux kernel
When Linus Torvalds was studying at the University of Helsinki, he was using a version of the UNIX operating system called 'Minix'. Linus and other users sent requests for modifications and improvements to Minix's creator, Andrew Tanenbaum, but he felt that they weren't necessary. That's when Linus decided to create his own operating system that would take into account users' comments and suggestions for improvements.




Free Software pre-Linux
This philosophy of asking for users' comments and suggestions and using them to improve computer programs was not new. Richard Stallman, who worked at the Massachusetts Institute of Technology, had been advocating just such an approach to computer programming and use since the early 1970's. He was a pioneer in the concept of 'free software', always pointing out that 'free' means 'freedom', not zero cost. Finding it difficult to continue working under conditions that he felt went against his concept of 'free software' he left MIT in 1984 and founded GNU. The goal of GNU was to produce software that was free to use, distribute and modify. Linus Torvalds' goal 6 years later was basically the same: to produce an operating system that took into account user feedback.

The kernel
We should point out here that the focal point of any operating system is its 'kernel'. Without going into great detail, the kernel is what tells the big chip that controls your computer to do what you want the program that you're using to do. To use a metaphor, if you go to your favorite Italian restaurant and order 'Spaghetti alla Bolognese', this dish is like your operating system. There are a lot of things that go into making that dish like pasta, tomato sauce, meatballs and cheese. Well, the kernel is like the pasta. Without pasta, that dish doesn't exist. You might as well find some bread and make a sandwich. A plate of just pasta is fairly unappetizing. 
Without a kernel, an operating system doesn't exist. Without programs, a kernel is useless.

1991, a fateful year
In 1991, ideal conditions existed that would create Linux. In essence, Linus Torvalds had a kernel but no programs of his own, Richard Stallman and GNU had programs but no working kernel. Read the two men's own words about this:









Linux is introduced
Late in 1991, Linus Torvalds had his kernel and a few GNU programs wrapped around it so it would work well enough to show other people what he had done. And that's what he did. The first people to see Linux knew that Linus was on to something. At this point, though, he needed more people to help him. Here's what Linus had to say back in 1991.





People all over the world decided to take him up on it. At first, only people with extensive computer programming knowledge would be able to do anything with that early public version of Linux. These people started to offer their help. The version numbers of Linux were getting higher and higher. People began writing programs specifically to be run under Linux. Developers began writing drivers for different video cards, sound cards and other gadgets inside and outside your computer could use Linux. Nevertheless, throughout most of first part of the 1990's Linux did not get out of the 'GURU' stage. GURU is a term that has evolved to mean anyone who has special expertise in a particular subject. That is, you had to have special expertise in how computers worked to be able to install Linux in those days.
Linux, at first, was not for everybody

Other popular software companies sold you a CD or a set of floppies and a brief instruction booklet and in probably less than a half an hour, you could install a fully working operating system on your PC. The only ability you needed was knowing how to read. Those companies had that intention when they actually sat down and developed their operating systems. Linus Torvalds didn't have that in mind when he developed Linux. It was just a hobby for him. Later on, companies like Red Hat made it their goal to bring Linux to the point where it could be installed just like any other operating system; by anyone who can follow a set of simple instructions, and they have succeeded. For some reason, though, Linux hasn't completely lost its 'Gurus only' image. This is largely because of the popular tech press' inability to explain in a meaningful way what Linux is. The truth is that few tech reporters have real life experience with Linux and it is reflected in their writing.


Where Linux is Today
Today, Linux is enjoying a favorable press for the most part. This comes from the fact that Linux has proven to be a tremendously stable and versatile operating system, particularly as a network server. When Linux is deployed as a web server or in corporate networks, its down-time is almost negligible. There have been cases when Linux servers have been running for more than a year without re-booting and then only taken down for a brief period for routine maintenance. Its cost effectiveness has sold it more than anything else. Linux can be installed on a home PC as well as a network server for a fraction of the cost of other companies' software packages. More reliability and less cost - it's ideal.

If you're reading this, you're obviously here to learn how to use Linux. Any learning experience means opening up to new ideas and new ways of doing things. As mentioned before, Linux is in the UNIX family of operating systems. UNIX is primarily designed to be used by professionals. You will have to learn some UNIX concepts in this lesson, but that doesn't mean that Linux is a professionals-only operating system. In fact, most major versions of Linux are designed to be as user-friendly and as easy to install as any other operating system on the market today.

Now that you know what Linux is and how good it is, there's one more thing we have to do - install Linux!
Facebook Comments

How To Become A Computer Expert in 7 Steps

How To Become A Computer Expert

Computer Expert ~ ApkFabia
Computer Expert
  • A Computer Expert needs to master the Computer Hardware. 

You have to know software and Java script updates or know how to check if something is right to download something. Troubleshooting, Operating Systems (O, and O/S related troubleshooting and Different Programming Languages. You have to know certain types of words that are to be used on the computer like the words troubleshoot you got to know what that means. Troubleshooting is when you fix a problem that's why it's one of the important words on the computer like if you can't go on the internet and you had seen the word troubleshoot and you don't know what it means, you can mess up the whole network.

  • Step by step you need to learn. 

Starting with 'Windows' system is better and easier approach. Learn each and every basic functionality of Windows. Start working with "Windows Registry". If you own a Mac, then OSX will be the default for you, but don't fret. It is very easy to master and get familiar with.

  • First of all you need to know the "Fundamentals and History of Generations of Computer".
  • Then you must master basic programming languages like 'C'.
  • Now it's good time to get out of 'Windows' and Get into 'LINUX'. 'Fedora' or 'Ubuntu' will be the best option.Then learn Windows programming with 'Visual Studio 6.0'.
  • Learn Shell scripting well enough. Try to remember most of the commands and filters. Use 'vi' editor instead of 'gedit' or such type of GUI editors.
  • Learn Computer Architecture, Operating System Basics.
  • Then when you have finished all the above, it will be best time to join a Computer Hardware and Networking Course.
  • Then you will be able to find the way to be expert yourself.
After you have done all mentioned above you will be able to troubleshoot most of the general issues and will be referred to as an "Computer Expert" to everyone around you.

THE BEST ANDROID EDUCATION APP OF 2013

Google Translate

Google’s own translation app offers text, voice, symbol and image translations in 80 or so languages. And offline mode means it doesn’t have to burn through precious roaming data either.

Runner-up: Wikipedia


                                                                  DOWNLOAD

Viber : Free Calls & Messages 2.2.0.1344

Viber : Free Calls & MessagesViber : Free Calls & Messages

Viber : Free Calls & Messages

Viber – Be Free to Communicate. Call and text anyone, anywhere.

Viber lets everyone in the world connect. Freely. More than 90 million Viber users call, text, and send
photos worldwide – for free.
Viber is available for Android devices and other smartphones. We are always introducing new features,
platforms and possibilities.
Viber is completely free with no advertising and we value your privacy.

New in Viber 2.2: you can now send free messages to groups of friends. Share photos, links and invite
more friends to join.

We are hard at work to support Jelly Bean (Android 4.1).

WHY VIBER?

-Best Sound Quality
-100% Free (*)
-Simple to Use
-Always On
-Ad Free
… much more coming soon.

NOTE: Network data charges may apply

DOWNLOAD

Wireless File Transfer


Wireless File Transfer for androidWireless File Transfer for android

Wireless File Transfer APK

Description
Wireless File Transfer Pro is the advanced version of Wireless File Transfer.
Features:
*Wireless apk installation
*File management
*App management
*Multiple file selection
*Search
*Thumbnails/List view
Current Version : 1.0.1
Size : 505k

 

Copyright @ 2013 APKFABIA - Top Tech Tweaks and Tricks on the Go.