|
Without any doubt, you should master Javascript (Frontend web development and Nodejs) and that will give you a firm grasp to learn actual frameworks and optional other dialects (CofeeScript, TypeScript, etc.). I recommend you the book "Javascript, The Good Parts" for start.
Second, master Object Oriented Programming and C# and .Net. This will give you access to a robust framework that is growing far from its Windows source, reaching Linux and mobile development using Ximian Mono.
Last, You should learn Java. You need this for Android Framework and for enterprise applications. This thing is huge, so diverse... If in .Net you have two or three ways of make something, in Java you will find 20 or 30 open source libraries for to do the same task. Not better or worse thant .Net, but the learning curve is huge.
While you are learning those, you must study some flavor of SQL (those that you can download free like MySQL-MariaDB, PostgreSQL, Microsoft SQL Express, SQLLite, etc.). It is a must to know database CRUD operations.
I am actually a some kind of programming languages observer. I have pleasure learning and compairing programming languages... but I am not alone. So, I can recommend you some hints of my method to learn as fast as posible a new programming languages:
RECOMMENDATIONS:
1. Install Console2 and customize a tab for use with Node, Java, Grunt, etc. and any tool or language that supports some form of command line. I been using this with every new language that I want to learn, setting up - running batch files (.bat) that send me to the language command prompt. It is a pleasure to open a command window that is ready to test a new programming idea in any language. My actual Console2 configuration, give me fast access to the command line of nine languages (Python, NodeJs, Go, Erlang, Ruby, Clojure, Scala, Julia and Rust) and I expect it grows more...
2. Write down in Word, as succint as posible, looking for use just one or two pages: Primitives or Data Types supported (Enumerate all providing declaration samples), Control Statments, Exceptions control (if any), Input-Output details, Data Conversions, String manipulation and Date-Time manipulation. You will use this for fast checking and prevent lost time searching about it.
3. Write Code. Start with small programs with progressive level of complexity. Tipically, I will follow this path:
* Hello World.
* Input-Output: Ask to the user some radio number and calculate area of a circle. Do not just make the math. In the code try to abstract to learn. I mean, if it is Object Oriented Language, declare a Circle object. Build its method Area for compute. Watch: Supports data hidding? PI constant... can be static? That means, it holds its value replicating a copy in every instance or act like a class var with just one copy for all the instances? etc.
* Basic OS interaction: Make a programm that scan and display all the files and folders from a given path sort by name or size. Goal: To learn access to OS and system files, collections support, etc.
* File Handling. Create, open, modify, delete text files. Goal: Exception handling and OS interactions.
* Database Handling. Basic app with CRUD support. Goal: Learn language string encodings support and, of course, language or framework state handling some RDBMS.
* Network Sockets: Chat between two machines. Goal: Data conversions, streams, strings to bytes, bytes to strings. Concurrency and multi-threading.
* HTTP server: Make a simple HTTP server. Goal: Check HTTP and REST support.
|
|
|
|
|
I use 3 monitors at work. The laptop monitor, and 2 big flat panel monitors.
It makes my life so much easier, especially when debugging applications.
Question, if you still use one monitor, do you also code in notepad?
|
|
|
|
|
I only got a second monitor a few years ago, and no, I didn't code in Notepad.
Vi was the King!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
OriginalGriff wrote: Vi
ugh.
|
|
|
|
|
It's actually pretty fast for certain things. It is a pain in the butt to remember all the damn commands though.
|
|
|
|
|
Albert Holguin wrote: It is a pain in the butt to remember all the damn commands though
|
|
|
|
|
Once you learn certain commands though, editing text files becomes fast. The commands for vi are also the same as commands for other linux programs like less, so you learn them for one and can use them in the other.
|
|
|
|
|
Emacs.
Regards,
Rob Philpott.
|
|
|
|
|
edlin
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
Edlin? Who/what? Oh its a Pre Windows Windows thing. Never had the pleasure!
Regards,
Rob Philpott.
|
|
|
|
|
It was better than a compass and a bar magnet, but not by much!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
|
3 squarish ones at work, one widescreen at home.
I actually think one big one is better than several, for whenever an application spans more than one monitor, the lines never line up properly.
Regards,
Rob Philpott.
|
|
|
|
|
Rob Philpott wrote: for whenever an application spans more than one monitor
I don't configure my setup to have applications span more than one monitor.
|
|
|
|
|
Just 1 monitor, and I use Visual Studio for coding (Notepad sometimes for .config files)
2nd monitor would be nice, but the budget for development is low...
The signature is in building process.. Please wait...
|
|
|
|
|
vonb wrote: the budget for development is low
Sorry to hear.
|
|
|
|
|
vonb wrote: Notepad sometimes for .config files Yikes ! I use Notepad++ for anything outside of a 'real editor'. As soon as I have an open browser window at a new post I have Notepad++.
No object is so beautiful that, under certain conditions, it will not look ugly. - Oscar Wilde
|
|
|
|
|
I'm rocking three over here, but I'm a poser!
Pro-tip: If your graphics card doesn't support 3 (or more) you can probably still make it work with one of these[^], I'm using one right now and it works perfectly.
modified 10-Dec-14 10:13am.
|
|
|
|
|
+1 for the USB video adapter.
That's how I have 3 monitors hooked up to my Surface Pro. I'd get more if I had the physical space.
|
|
|
|
|
Like OG I got my second monitor a few years ago and was using this[^] to program.
New version: WinHeist Version 2.1.0
There's a fine line between crazy and free spirited and it's usually a prescription.
I'm currently unsupervised, I know it freaks me out too but the possibilities are endless.
|
|
|
|
|
for the HEX editor link.
|
|
|
|
|
I use only one 23inch at work, because the second you can get is cr@p and I cherish my eyes.
Yes I write code in notepad mainly xsds and xmls Who doesn't love the all time crashes of VS during xsd transformations debug.
Microsoft ... the only place where VARIANT_TRUE != true
|
|
|
|
|
Notepad is _the_ tool for XML.
|
|
|
|
|
I still use 1 monitor at work.
But actually I'm working on a Qt application running on a Raspberry Pi using a small (480x320) touch display. So the main monitor is used for hanging around at CP, cross compiling for the Pi using a VM with Ubuntu (Qt Creator to answer the notepad question), and accessing the Pi using PuTTY (SSH). Another monitor is connected to the Pi's HDMI port to watch the debug output. Does this all this count as 3?
I use Notepad++ instead of MS Notepad, but not for programming. However, on the Pi I'm using nano for small programs and scripts.
|
|
|
|
|
Who can manage development on only one monitor?
Between the desktop and the laptop I have seven; the laptop built-in plus an external and the desktop can support up to six but I ran out of desk space. ...and yes, I have a valid use for all of them.
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|