Getting started working with large projects - javascript

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.

Related

really struggling to find the next path to develop my javascript knowledge

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.

How to learn PHP, Jquery, Javascript, in smooth way [closed]

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 =)

Any SproutCore tutorials available?

I've read this question: SproutCore javascript, but as it's four years old, it is outdated. both the frameworks and the linked pages have changed. Apart from that, in four years one could write a lot tutorials. I googled around but couldn't find anything. I've seen the guides on sproutcore.com, but they are far from complete. I can hack together a simple one page interface, but with my current knowledge of the framework, using it would be something more like a handicap than a benefit.
At the moment, the guides and showcase are definitely the best sources of static information. We do realize that the guides are a bit outdated and incomplete and actually have a thread going right now about what needs to be added.
However, the mailing list and IRC are now both very active and picking up steam as we all try to help out and answer questions.
Additionally, we are in the process of getting Sproutcore added to TodoMVC which should give you a good starting point.
If you're interested, we would love to hear your thoughts on what material we can add to the guides to improve! Just visit the guides' GitHub issues page and add an issue for what you'd like to see!
Edit: Also, we are making a push to add some questions to SO so that users can easily find proper examples of how to solve common problems, so definitely check back regularly and view the recent ones.
I apologize for the shameless self-promotion, but some time ago I have assembled a little blog post tracking the most useful learning resources on Sproutcore:
http://unicolet.blogspot.it/2012/04/guide-to-searching-and-finding-help-on.html
Hope you find it useful.

"Simply Javascript" Question

Im new to javascript. I've been learning for about a month and am currently reading the Simply Javascript book by Kevin Yank and Cameron Adams.
The fist few chapters started out really well but the book got really difficult in the chapter about events. They go on about the problems with events listeners and say here just use these functions we made to make it easier.
Im just wondering whether this is good advice should I just use their functions without really understanding how they are working, and should just try and plug through this chapter and hope that the next topics are a bit easier to understand.
If anyone has some other advice on where to start learning or some exercises I could do that would be great aswell.
Thanks
Take a moment and try to understand what they're saying. If you have a specific question, ask it here. There is plenty of material on the web about why you need to be careful with events and listeners.
If you really do want to ignore the issue for now, I suggest using a framework like jQuery. At the very least, you can dive into how they work through the issues.
But, just moving on and coming back to the chapter later might make it easier to understand.
Use their code, plough on with the rest of the book, then come back to that chapter.
Event handling in JavaScript is a nightmare, and they're quite right to wrap it up in some helper functions (most people in the real world use jQuery or a similar toolkit for this).
What I do is I have a book. I write everything down in a way that I understand it.. If not I review it and write it in a way I understand it, and so I can remember I also challenge myself with questions I make up to try and remember, because I have a terrible memory.. If you still don't understand try W3 Schools they explain everything in detail and they have Examples and problems to solve at the end, if you don't get it you can also see the answer and try to figure it out. CodeCademy and CodeSchool is also a great way to learn interactively, it is also free. You can buy an advanced edition for a decent price and it will go through EVERYTHING I think it has a chat to so someone can teach you.

Choosing the right design for a website? [closed]

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.

Categories

Resources