Jump to content

Recommended Posts

Posted

Looking for a bit of advice, got a bit of time to dedicate to learning more programming stuff.

Bit of background. Know some basic old school php - none oop and probably outdated ways of doing stuff.

Have played with codeignitor and built a database driven site.

Also used .net C# mvc4 I think to build a similar site. This was my first real understanding of mvc and loved the editor.

 

Anyways heard some stuff about RoR becoming big but I heard that in 2006 and it doesn't seam to have kicked on?

 

So my question is what should I concentrate on? I don't really have any projects in mind. Is RoR the future or is Swift worth it or should I stick to a more traditional one in php or .net.

I'm guessing most work would come from web apps/ web sites but again this is just going to be a hobby not for a project or job.

 

Thanks in advance

Posted

If it's just for a hobby, pick one that interests you. TBH, all have their pros/cons. At work, I use C#/ASP.NET/MVC/Razor as we have Windows servers and I wanted to learn how that all works. It's a very "big project" focused setup, so it takes a while to get something running but then it scales very easily.

 

If you already know and like PHP, you could put some time in to updating/refreshing your skills there.

 

RoR is very popular with young coders (and I read somewhere recently the average wage for a RoR programmer is £45k!), so if you're looking to learn something completely new I'd certainly recommend that, but I'd also say put the time in to learning pure Ruby first, it will help in the long run. On that front, this free e-book is considered the bible amongst Ruby programmers (I'm working through it myself right now): Why's (Poignant) Guide to Ruby. It's a little crazy and there's a lot of pointless random story telling involved, but it does at least keep it interesting and a lot less dry than most programming guides, so I can understand it's popularity.

 

In short, and this applies I think to whatever programming project you take on, find a project that interests you, a language that clicks with you and go for it.

 

Better to be a fantastic Pascal* programmer than a rubbish Ruby programmer.

 

* there's a guy who is quite well known around hackathons for almost always coding in Pascal, spending a lot of the time finding ways to make Pascal work on any given tech. Most people think he's mad, but he clearly loves the challenge and he's a damn good programmer so why not?

Posted
Whole of GOV.UK backend is built on RoR, so I suppose its still a "useful" language. Try with OOP PHP, a lot has changed especially in regards of MySQL and MySQLi additions, its all safe filtered etc
Posted

You cant go wrong learning the basics of programming, as these are readily transferable skills.

Java isn't bad to learn the principles of OO, and the use of frameworks and API's

When beginning programming, I feel it's useful to learn datastructures by programming them yourself, rather than using the built in classes, that way you get a feel for what is going on 'under the bonnet' and which datastructure suits what application.

From Java it's not a huge leap to scripting languages for the web (.asp, .aspx) and then to their apache counterparts (.php)

Posted
Know some basic old school php - none oop and probably outdated ways of doing stuff.

 

As you point out, a lot of programming these days involves web-based front ends, in which case a good understanding of Javascript, JQuery and various other Javascript libraries / frameworks would be handy. Personally, I'm sticking with Python for server-side programming, basically implementing a server-side backend for an HTML / Javascript front-end. You could probably do that equally well in PHP, although you might want a change just to get away from the idea of generating any front-end code server-side - the client-side of web browsers is quite powerful enough to handle whatever you want to do with it these days.

Posted

To be honest I've done a bit of web design and I'm not really keen on the all creative process of it. I'm much more comfortable trying to get things to work then look pretty.

 

Back in the day and my first OOP was done in (macramedia) Adobe Director using its Lingo code. We made a space invaders clone. I know that its probably a dead language and only really usedful for games but I understood what was going on.

 

Probably I have spent to much time on front end stuff and design rather then what im more interested in.

 

Im thinking C# at the moment as I like the IDE in Visual Studio. Would learning .net just limit me to 'websites' or would I be able to write small windows programs. Something like a program to monitor processes?

Posted

Im thinking C# at the moment as I like the IDE in Visual Studio. Would learning .net just limit me to 'websites' or would I be able to write small windows programs. Something like a program to monitor processes?

 

C# allows you to do both.

Posted

.net is the Microsoft managed code libraries.

They are not for websites (although things like asp.net are) but for talking to OS functions.

It replaces all the calls you used to have to make to .dll files to talk to the underlying OS.

 

I use .net (vb.net infact) to do things like user management. User creation, quota views, password resets etc without having to bother with WMI or LDAP calls.

.net is a godsend.

Posted

To me, languages are tools for a job. Some work better for some jobs than others. Choosing one for hobbyist purposes really depends on how you prefer to implement things. MVC is a good way of laying out any system, but some languages are a little difficult with it. PHP doesn't generally lend itself well to it unless you use a framework on top of it, like Codeigniter. C# didn't used to have very good MVC support either, but Microsoft developed it a few versions ago and it is a lot better now than it was.

 

Personally, I use C# for windows applications and the like, and PHP for website development still. I have used Python (combined with WX Widgets) for a *nix based UI program though.

 

So, it really depends what you want to do!

Posted

Im thinking then as I liked C# that I could start off with the doing some ASP.net building the music store and was it nerd dinner? using entity framework?

Would that then give me a sound knowledge to move on to build a windows program?

 

I understand different languages are suited better to different solutions, but I want to get a firm grasp of one rather then know little about a lot. @peterp how difficult was it to create the programs you made?

Posted

Hmm, difficult is an odd concept when programming.

I've been programming for 30 years, once you have the methodology (functional, OOP) etc learned; data-structures (linked lists, arrays, stacks, queues) learned; common algorithms (sorting, hashing, string manipulation, file handling); then you can program just about anything. The only difficulty is in learning how your platform of choice does things (and the best way of doing them)

When I 1st started VB.net here I was writing a huge sprawling program that provided printer-mapping, overrides to some GPO's for some users on particular machines, and took me about a year to get working. But I wouldn't say any of it was 'difficult' it's just learning how to do things in VB and .net.

And for that, google is your friend. along with Stackoverflow.com, codeacadamy etc.

Posted (edited)

+1 for C# .net. Hugely beneficial for replacing little mondane tasks (like peterp suggested) and there are so many guides you can follow online as it is such a popular language. Once you've designed your program it's not hard to copy someone elses code from some workbook or help forum to analyse it and adapt it to suit your needs (I'm meaning very basic level of course).

I've been doing PHP for 7~ years and recently started my own small business creating websites, but personally I'm not that excited by it anymore and I can't use that knowledge to much extent outside of client sites. On a plus side though, you learn a lot from web dev that you'll take into other languages and it is probably the most short-term fun you'll get. Android/iPhone dev can be overwealming and so can C to make something basic, where you could create a whole custom forum or helpdesk app with PHP and see results in the first couple of hours, building functionality up bit by bit.

It's great to know a bit of everything to be honest, if you're focusing on web then just jump in and create a few projects (begin with HTML and incorporate other languages as neccessary), you'll eventually run into situations where JQuery would be useful and therefore begin learning bits without neccessarily having an action plan - likewise with C you'll learn a lot as your projects get more difficult and you look into controls deeper.

Edited by JJanisch
  • 4 weeks later...
Posted
Can I PM some one for a bit of help on a project I have in c#

 

You're better off posting a thread about it to be honest! there's quite a few of us who know C# who can help, but it's always good to get different opinions.

Posted

Coming from a Pascal and VisualBasic 6 background, I started to write in VisualBasic.Net and SQL server December 2013 and I love it.

 

Some things are harder, something's are a lot easier, especially using the .Net framework. Help, Google and Stack Overflow have been very useful in my journey, however in a year I have managed to develop 3 projects including a large one that links/uses SIMS and is nearly 20,000 lines of code and there's a lot more code to add.

  • 2 weeks later...
Posted

Ruby on Rails isn't a language but a web framework, a distinction worth making. Ruby is a fun language to program in and it's great for system scripting and, obviously, developing web applications. Rails isn't the NBT anymore but that's a good thing, because it's a really mature framework now with a great, very active, core team.

 

If you're looking for the current buzz languages check out Go, D, Rust, F#, possibly even Dart. (Personally I really like the look of Rust.) Also worth checking out the mature clientside JS frameworks like Ember too if it's web dev you're after.

  • Thanks 1
Posted

Cheers fokes. Started doing stuff in C#.net just making a little program that takes a csv file generates random passwords and then outputs a csv file that I can use to add users to Google.

 

The problem I have with WEB stuff like Ember node backbone etc is I dont know why/when you would use them?

To me HTML and CSS for design (php if using wordpress) use php/mysql or now c#+mssql for database sites. JQuery to add sparkle

Posted
To me HTML and CSS for design (php if using wordpress) use php/mysql or now c#+mssql for database sites. JQuery to add sparkle

 

You're thinking of the application being server-side, with all the bsuiness logic on the server and the HTML / CSS output being displayed on the user's web browser. However, with today's rather more capable client devices (even a cheap tablet is capable of displaying most websites) you can do all the whole user interface client-side, with the server side part of things just providing a light-weight API. It should wind up being more responsive for the end-user and taking rather less server-side processing power to run, making it cheaper to host.

  • Thanks 1
Posted
You're thinking of the application being server-side, with all the bsuiness logic on the server and the HTML / CSS output being displayed on the user's web browser. However, with today's rather more capable client devices (even a cheap tablet is capable of displaying most websites) you can do all the whole user interface client-side, with the server side part of things just providing a light-weight API. It should wind up being more responsive for the end-user and taking rather less server-side processing power to run, making it cheaper to host.

Erm sorry still dont understand

Posted
Erm sorry still dont understand

 

Rather than the server doing all the work of building the page then sending the formatted data back to the client, all the server needs to send is a bit of raw data (smaller, quicker download) and the client builds the page itself. Trade off is it takes more CPU power on the client end, but this is quicker on the majority of devices than the time taken downloading the formatted page would have been, particularly on mobile connections.

Posted
Erm sorry still dont understand

 

Basically, web pages are now (or can be, anyway) self-contained applications. Instead of a "web application" consisting of a number of separate server-side scripts that output the HTML to display a page you serve one web page with a basic HTML framework that then uses Javascript to makes calls back to the server to get data and update the page's contents accordingly. All the user interface stuff takes place client-side, so server-side you can concentrate on actual functionality. Works well, but does have some pitfalls - our new VLE-embedded pupil reports tool takes this approach, but on some browsers it's taking maybe 20 seconds for any data to actually appear on screen, so users are closing the page after a couple of seconds and reporting that it doesn't work. I need to add a "Loading data - please wait..." type message, with swirly thing, so they get the idea (also, a faster MIS database would help...).

 

The above approach assumes you are doing stuff like input constraints ("the user can input an integer to this field, and a string into this one", etc) client-side. It would be foolish not to expect someone to try tinkering with your application at some point, though ("I wonder what happens if I submit a negative number here?..."), either accidently or trying to break / crack your application. In that case, you'll need to do the same input constraint checking both server-side and client-side, and it makes sense to use some kind of framework that does both for you with you only writing one set of checks ("Field A - string input only.").

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...