Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
im taking classes for programming for about 1,5 years now and started from 0. I must say for my feelings I already learned allot but still it is not enough to build anything complex on my own without using examples from the internet that I just modify and try to make it work.
I did some courses on CodeCademy and watch youtube guides and google allot, use certain websites like w3schools and more of that. But what is the best method to learn any givin language in a propper way. Im spending allot of time on searching and reading things that I never seem to fully understand, only sometimes some parts of it.
It does make me lose the hope that I wil ever be a good programmer and feel demotivated.
What are your expiriences and tips and tricks for a beginner like me ?
This question is rather opinionated, not sure it is suitable for StackOverflow.
For what its worth, this is my advice:
Ask lots of questions, make lots of mistakes and build things, keep challenging yourself. Never give up. Also, learn to use some frameworks, for PHP, Symfony, Yii, CakePHP, for example. For JavaScript, Angular, Backbone, Node.
PHP Manual and JQuery documentation are your best friends :)
Also, install a testing server on your local machine such as XAMPP.
Good luck!
I was in same situation as you before.
As mentioned already contributing to project is a good way to learn as it will give you motivation to push yourself forward and do it because you don't want to let your team down.
Another great way I have found for myself is to create a small projects yourself, for example:
I want to create my own website, what do I need? I need to know: html, css, js and php.
Okay so start with what I can do.
When you reach PHP and JS part, you will face problem which you can break down into smaller problems it will also develop your problem solving skill in IT.
As an intermediate programmer myself, I would say the best way to learn is to continue finding resources online and communicating with other programmers or developers.
Some words of advice:
1.) Never be afraid to ask for help
2.) Don't feel discouraged, feel inspired
3.) Believe in yourself
Also, this website is probably the best resource I've found, both for information and kind people.
You must have some idea's of something that you yourself miss on the internet. Start with that, work out that idea as a concept and then start it.
Read a lot of IT-related news items; they might inspire something for you to start thinking about doing.
Contributing to projects has already been mentioned, but I'll do it as well. It has many advantages, not in the least having people in the project focused on achieving whatever the project has set out to do, which might give specific insights in that field of the wild internet.
Get a part-time job at a web-developers company, it doesn't have to be big, but it does offer you opportunities to learn specific areas. There's always work in the IT sector.
Also, troll along the questions asked on Stackoverflow, see if you find something that might challenge you and go attempt to answer it. The questions are usually abstract enough that you can replicate the problem someone is having, then try and document your solution for them.
In my long (yet short ;-) ) programming experience, it's a matter of perspective. Some learn better learning the whole theory from books and then applying examples, and then making sample projects. In this case use JQuery, PHP and JavaScript tutorials for basic concepts and then make some examples of the methods, and then, try to make a project on your own. But then again, this is one perspective.
The other and it's been kind of direct to me, it's that if you have already some basic programming skills, go ahead and do something you like. When you have doubt about doing something, google it, read docs try, and try again. Why this is smooth? Because even though it's not as fast, the experience will remain solid. If you're the practical type of person, you won't easily forget when you learned something out of try & error.
There are other perspectives, but I'll leave it from here. I wanted to be helpful somehow on this because I had this same question before. But, faithful to the rules ^^u (yeah, rules... ¬¬u), if it's a question that derives from perspective, debate, or recommendation (like product benchmark, or best educational way of learning something) then should not be addressed here. A specific question for an specific answer. Try to make it specific, and search in the similar question matches just in case. Good luck =)
Related
I have completed codeacademy twice, freecodecamp twice and read a few online articles...I believe I now have a good understanding of the fundamentals of Javascript.
However, I feel lost in terms of where to go next. People say build projects, but where do I start? How do I plan? Even though I know the fundamentals of Javascript, I still feel there is a lot to learn. I feel like I will only truly start understanding Javascript once I start putting projects together but I cant think of any.
Also, codeacademy, freecodecamp and these other online course websites dont seem to really teach DOM manipulation. Is there any online coding sites, similar to the ones mentioned, which will allow me to practice DOM manipulation?
I would be hufely grateful if people who have developed their understanding in Javascript can give me some advice based on how they did it.
I am just sitting here staring at my laptop and going back and forth. I cant really seem to figure out what to do next, now that I have gained a basic understanding of the core concepts of Javascript. Please guys, help!
This is not a very good question, but I still would like to try and explain.
Questions you need to ask yourself
Frontend or backend js?
I assume frontend based on the "DOM manipulation" part, but there is also Node.js for the backend with it's own unique API to use and interact with the operating system.
Do I want to use libraries and/or frameworks
Depending on your needs and preferences you will come in touch with these things, they all have their own learning curve, on top of learning js. Libraries are mostly just function in order to help you. However frameworks like Vue and Angular require a way of writing your code that is like it's own language. (opinionated)
What version(s) of js and browsers do you want to support?
Javascript has evolved over time and the javascript engines in browsers as well. Older IE browsers will be harder to support without the help of a library like jQuery.
Now about the learning part and where you can practice.
There are probably thousands of great sites to practice, however I will give you my favorites.
The stackoverflow documentation on javascript (top navigation on this page)
I will get hate for this: W3Schools
To read the docs on Mozilla
interactive on both codeschool and codeacademy
JSFiddle for practicing in a closed environment
https://bento.io/topic/javascript
https://learnxinyminutes.com/docs/javascript/
http://www.allitebooks.com/ for specific ebooks
Have a look at what frameworks are popular nowadays and why. If they suit your needs. Learn them one or two at a time but not more, so you won't mix them all up in the end. Try to at least understand OOP in javascript even if you don't intend to use it later. Anyone feel free to expand this answer because it is hard to cover it all myself.
This may be a fools errand, asking this question, since it is such a broad subject. But I'm a little overwhelmed as a jr. Developer trying to figure out where to start.
So far in my few month long career, I've been working with smaller projects, small ui modifications to existing projects. Now I'm being tasked with merging, or making 3 different projects compatible with one another, much larger than anything I've even seen, let alone worked with.
The code is complex, and a lot of it is pretty advanced. This is looking like it might be a few month long ordeal. Is there any advice you all have as far as learning other code bases? Understanding their architecture/functionality?
Unfortunately my NDA precludes me from giving out any specifics about the project to perhaps get more information, and I'm the most senior person on this team. Any and all advice you can give me about where to start learning a large code base, with lots of functionality would be helpful.
This question is indeed too generic to be addressed here, maybe https://softwareengineering.stackexchange.com/ could clear some of your issues in tackling new projects or specific technologies.
If you have specific questions regarding issues you find with compatibility between the technologies you have to integrate then we might be able to help.
One generic piece of advice I would give anyone tackling a new task is to take your time to first understand the requirements and the projects you are going to work on.
Another piece of advice would be to ask for a more senior programmer help you with the task, even if he can not actually work on the project he could still guide some of your decisions. It's always good to have a someone to bounce your ideas on.
Also considering that you are the most senior in the team, remember to consult with your colleagues.
Every project is different though and there's no specific solution we could give you to help you complete such a generic task.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I've been doing some development where i just couldn't stick to PHP, i needed to use Javascript or whatever. Whenever i needed to use a different language i just searched for some snippets or what ever and i would copy paste.
Have you guys got any tips for me how to get more experienced with an language?
websites with tutorials or anything like that ?
i really want to get into web development, but i'm stuck at PHP since we don't get more languages on my web development course.
p.s. not sure if this is the right place to post this, but i thought lets give it a go, correct me if this isn't the right place
There are many places from where you can learn javascript, jquery, ajax etc.
These are two of them:
http://www.w3schools.com/
https://www.youtube.com/
What you could do is get yourself a free course from http://www.codecademy.com/
get yourself busy with reading about the languages you want to know, get some books and the most important, Try to make things, dont stop if you counter some problems, You can only learn from your mistakes.
I won't follow youtube guides tho, I am not a fan of them, but that is personal tho:)
Edit: I did use codecademy.com for Python, it helps alot! give it a shot!
I use http://www.microsoftvirtualacademy.com/ a lot to help me keep up-to-date with new technologies. They have really good courses and are all completely free.
Another good resource that I had used in the past is http://www.lynda.com/. They have some free courses and some are paid for more advanced topics.
I would caution a little about YouTube, as a lot of the videos can be hard to follow and more confusing to persons who are new to the subject that is being discussed. However, there are some out there that are really very helpful.
If you want more of a structured class format, then https://www.edx.org/ has full courses from some of the top schools, including MIT, Harvard, Berkeley, and many more. They also have courses from top partners like Microsoft, IEEE, W3C, and Linux. These are typically full courses from the actual university and, in some cases, you'll follow along with the students that are enrolled in the course for that semester. It's very well done, and completely free. There is a small fee if you want a verified certificate, but learning is always completely free.
If you like the class format and learn well that way, MIT has a lot of full courses available online for free at http://ocw.mit.edu/index.htm. There's a huge course list. Here's an example from their Electrical Engineering and Computer Science program
These are all resources that I either currently use or have used in the past and I highly recommend them. Even though I have been programming for 20 years and have been a professional software engineer for 17 years, I try to stay as up-to-date as possible on all of the latest technologies so I can continue to be relevant in this fast-paced world.
For beginners, I recomend: http://coursesweb.net/ (has free lessons, code snippets and scripts) and http://www.w3schools.com/
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
First, a little background: I have written a little application in python with SQLAlchemy, which is roughly an improved RSS reader: it selects links that should interest the user, and shows them to him. I already have a very simple command-line interface, and I envision a variety of interfaces: web, instant-messaging, desktop...
For now I'd like to create a simple web interface, but I have absolutely zero experience in the matter (appart from making a simple php forum 5 or 6 years ago...). So I'm comming here for advice on where to start:
Is there a good tutorial on HTML/CSS/Javascript focused on making a website look good simply? I know about w3schools, but it's a terrible tutorial IMHO, since it teaches you about HTML/CSS but doesn't show you how to use them.
Should I use a javascript library? Which one?
Should I use a web framework? I'm guessing either not or a very lightweight one, since I already have an application core with a database and SQLAlchemy, and I don't want to drop it.
Any other advice?
Thanks!
I recommend that you use some kind of web framework, it will make things a lot easier. Since you already know Python you should look into Django framework. It seems that you can use SQLAlchemy with Django, see djange-sqlalchemy project.
I recommend using JQuery framework/library for Javascript stuff. It greatly simplifies coding and takes care of most web browser incompabilities.
This CSS tutorial seems to give you the basics.
I would start by reading the Django tutorial and start trying things out. I wouldn't worry too much about HTML stuff, you should be able to pick up enough from Django tutorial. Make your site first functional with HTML, Django and SQLAlchemy. Only then start worring about Javascript. Who knows, maybe you do not need Javascript at all?
Do not try make your site work and look good at the same time. When you are making your site work, use simple and ugly HTML pages. When you are making you web site look good, work only with static HTML pages and CSS files. It is easier to combine the two in the end.
Just like everyone else here, I'll chime in with "Use my favorite framework, because it's what I use...."
I would start with small goals for a web interface. Get something simple up and running that to make sure you understand how things work.
Write an app that responds to the following url and returns something.
http://localhost:8000/my_links
Once you understand the little bit of machinery it takes to make that possible, what is handed to you as far as information about the request, and what you need to produce to return to the caller, it should be come clear how to fill in the blanks to get from your existing application to data thrown at the web browser.
Learn WSGI for no other reason than most of the libraries that will help you build a web application utilize this to some degree.
One of the links from the above page that I found extremely beneficial in understanding how all this works. was Ian Bickings article "A Do-it Yourself Framework"
Once you get a grasp of that stuff, you may find that dealing with WSGI at such a low level is maybe a little too cumbersome. That's when you'll probably want something like WebOb
which is just one of several ways people have come up with for abstracting away the low level details of the request/response cycle into some convenient objects. In a sense encompassing the HTTP protocol without trying to make it make sense to someone who doesn't want to know what HTTP is.
Depending on the complexity of your application you may decide that handling a request, looking at the path and dispatching off to one of many functions is a drag you'd rather not deal with. This is where everyone's favorite framework starts to be beneficial. And I would suspect that you would know enough by this point to better assess the frameworks that are out there and determine which fits your needs and goals.
Lots prefer django, maybe you will too. Others prefer Turbogears, and or Pylons, maybe bfg, maybe grok, maybe zope, maybe plone. But no one here knows what you want your application to do.
It's an interestingly common mistake: all of the above answers provide technological advise on what's the best technology to do ... what exactly? You should work the other way around.
I think that if you want your application to be successful, you have to make sure it enables its users to get the most out of it in the most natural way to them.
Therefore, i suggest you first "storyline" how things should happen from a user's perspective. Use paper and pen, or more sophisticated wireframing tools such as balsamiq mockups.
So, first lay out what the experience should be, and this will tell you which technology will be the best choice to enable that experience.
Oh, and don't forget to read this.
HTML, CSS and JS Book: DHTML and CSS for the World Wide Web
Javascript Library: JQuery
Web Framework: Not sure, DJango?
Other Advice: Learn to write HTML, CSS, and JS in a a simple text editor with syntax highlighting. Complex IDE's are cool, but for this stuff, they will make you learn slower.
Web applications are not simple.
HTML and CSS: Head First HTML is probably a good starting point. The Head First series are usually excellent tutorials. As Josh said, write your pages by hand.
Javascript: you don't need this to get started. Maybe in a later version. When you have a better idea what you'll need Javascript for, you'll be better equipped to pick a library that suits your needs.
Web framework: You should probably start with Django. That's the opposite of a "very lightweight" framework, but in this context "lightweight" requires more expertise to make something polished. So it's a good idea to aim for "feature rich and well supported" instead.
Here is another option, I feel it's worth mentioning before making any decision.
As web framework I would advise web2py, it is very easy to setup and yet powerful. Here is a document showing the differences between Django, web2py and some others. It is somewhat old but will give you a good overview.
Since you have legacy code, if you really want to keep it there is a fair compatibility between the two although you should double-check. The easiest would be to adapt your code, of course, the differences aren't so big. But that's your call :-)
Regarding the Javascript library, probably jQuery.
The best introduction you could follow is the opera web standards curriculum. Some of the information will be too basic - but a full understanding of all the topics covered will give you a very good grounding.
http://www.opera.com/company/education/curriculum/
Alternatively team up with someone who specialises in front-end development.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm a programmer (hobbyist, but looking to make it a career) by nature so when I was asked to design a website I felt a little out of place (most of my applications don't have pretty UI's, they just work because I'm the only one using them). I have been looking into how I could design my website and started wondering how you guys decide.
What guidelines can you guys give me? What should I consider before I start coding?
It's pretty hard to sum up the whole field of UI design in an answer.
Make the most common tasks the easiest. Figure out what people will want to do, and make that as intuitive and straightforward as possible. Don't make them think.
Make mockups and prototypes. Watch people try to use them (watch, don't help them), and fix things that they found awkward. Your first attempt at a design isn't right, don't be too opposed to throwing it away.
There's really so much to this field that it can't be explained to anyone easily. Designing is no less complex than programming, but many programmers seem to look at it as an afterthought for some reason. Try some creative googling for design principles, especially as they apply to the web. Look at sites you consider well-designed and try to figure out why they feel that way to you.
Read, read read!!!
The best thing to do is read up on design techniques, and coding practices!
Design sites:
http://www.smashingmagazine.com/
http://www.youthedesigner.com/
http://www.psdtuts.com/
Coding sites (design minded):
http://www.nettuts.com
http://cssglobe.com/
All the above answers are great! My advice is to learn as much as you can by studying others (and asking questions).
Design and building HTML/CSS from a design are two different games. The first requires artistic skill, the second requires a large knowledge of how HTML and CSS should work and how some browsers choose to understand those rules.
For the first, if you can design, great. If you can't and the client wants something you can't deliver, talk to freelancers. There are a billion of them out there.
Building it out can be comprehensively learnt but it can take time. If this is the first time you've taken a complex design to web, you might want to outsource that too... But it's really something you need to be able to do if you want to make a career of this.
There's no reason you can't do everything but you need to appreciate that your skills will improve over time and when you do your first, it could be a lot better. As with everything, practise makes perfect.
You should always try for the bare minimum at first.
Consider usability and easy navigation before anything else.
Take example of other sites, find their weaknesses and their strong points and inherit them in your solution.
In case you find your self blocked due to lack of design imagination, then try to simply think of content placeholders, ie where something elements go, try to sketch it on paper to see how it looks and judge it, rinse and repeat and you should get to something.
Ideally show your sketchs to someone and take a second opinion.
I've realized I'm bad at web design: I know HTML, CSS (both pretty well), but I don't know how to make a page look good. So I use existing templates, and make small adjustments or customizations. See these questions for free templates:
https://stackoverflow.com/questions/851666/free-website-templates-royalty-free-css-html-asp-net
https://stackoverflow.com/questions/522856/what-are-good-resources-for-css-templates-or-templated-layout-sites
Since you were asked, I assume there is a customer involved in the process. So create a prototype, try and get feedback and keep going according to that feedback, try to always keep tack on those feedbacks at final stage it might became very helpful.
In most the cases creating design depends on the contents of web site. Before you make your sketch go through sites with the same topics and same context in order to get some ideas in your head. After several times you will gain some skills and the ability to actually feel how it is suppose to look. My personal advise is try to think of clear design, avoid cluttering, think about usability and about functionality in most cases enough common features.
I agree with the approach that just researching and reading and looking is the best path to becoming a good designer. I think sometimes programmers are afraid of the 'artistic' realm because it's so subjective, or they think that they need to have some natural talent.
Most good artists work really hard to refine their craft. Natural talent is roughly as useful to a designer as advanced math skills are to a programmer. It can help in some areas, but just isn't required.
Look at popular sites that have similar objectives. How are they solving their problems using visual elements? How is information arranged on the page, how can it be broken down, what pieces are vital to functionality of the site, and which pieces just help improve aesthetic presentation (or don't improve it)?
While it's never cool to just rip off a site design, it's perfectly normal to borrow techniques or ideas and use them to create your own original design.
Make a wireframe first - this will allow you to effectively place the information on the page and think about architecture and functionality without worrying about the 'pretty' stuff. Then move onto an image mock-up that is a fleshed out version of the site. Don't be afraid to throw out designs and start over completely.
There are a number of graphic design principles you might pick up along the way. It's always good to keep them in mind, but my advice is just to go with your gut instinct for now. If you know any skilled designers, ask for feedback. Designers love to critique (in a nice way).
A lot people will suggest to just keep it simple and straightforward. That's great advice, but just remember: simple can be really hard.
As for an online resource, I think Web Design From Scratch provides a lot of good advice in one place. There are countless awesome resources online for design help and inspiration, so just keep digging and subscribe to blog feeds.
Good luck.
You might also want to skim some Alert Box articles by Jakob Neilsen. I haven't read them, but people also speak highly of his books.
There's also a ton of sites which can generate CSS templates for you, once you decide what sort of layout you might want. That provides you with the groundwork which you can subsequently tweak to meet your needs.