As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I just now completed javascript in 24 hours now i want to move to advanced javascript, can someone suggest me advanced javascript books. I am pretty well versed in HTML and CSS and a novice at PHP. Me and my friend are planning to create a website(think it as a social networking site for college or something similar to that) so what should i learn to do that. Is PHP JS and HTML are enough? Can you suggest me books for this. Thank you
24 hours isn't enough to fully understand any language beyond its syntax and how to accomplish some basic tasks. Before tackling a large social networking project, try to make smaller, simpler programs or layouts.
To fully realize your social network, you'll need to know PHP (or Ruby, or Python, or C++ if you're crazy), HTML, probably JS, and some sort of data store; usually an SQL implementation or one of the newer NoSQL databases. It's not something you can throw together in a week or a month unless you really know what you're doing.
Start small, with a blog or a forum engine. That alone will take weeks. Then work your way up.
I will suggest You to learn some security in php like sql_injection and xss.If you are familiar with them then you should learn some ajax with javascript and jquery.It will very helpful to provide a interactivity like facebook
Quoting the advice from Gordon
if you want to become an expert programmer, google SOLID, buy GOF, buy POEAA, buy Clean Code, lookup GRASP, DDD, CQRS, DCI … but dont ask for PHP books. That's the most reasonable suggestion I can give you when you ask for Expert PHP books really.
maybe start here: ustream.tv/recorded/22783515
and you have just got he overview of language ... no one can be perfect in 24 hour even i think john skeet cant do that so you need to learn at lease 2 month to get a good or ok level knowledge
and also there is a level of website like if you think you want to make a website for a college which might have not many feature you can do this by some knowledge of php ,html,jS,ajax and basic database but if you want to make eCommerce website or a website like so working than you need highest level of knowledge
It depends on what kind of website you're trying to develop.
If you are looking for a highly interactive modern website, I would really suggest learning Flash, ActionScript, and continuing on JavaScript. Taking a good look into HTML standards and animation would also be extremely useful.
If you are looking for how to make an e-commerce website or something similar, improve your knowledge on PHP. Ajax in JavaScript is also extremely useful, as you don't want your customers waiting forever if you have a slow connection. SQL, along with some kind of database engine (I'd suggest MySQL) is mandatory, or your users can't buy anything. But that's far down the track.
I think most websites split into those two categories.
But then again, some beforehand practice is definitely needed. No book on sale, as far as I'm concerned, will give you enough knowledge to build your own good website straight up. It takes experience, and not just of coding, but more of the study of user friendliness and what makes up that.
Really depends on what you need. ;)
Learn Web Security. Start with the book Essential PHP Security. Then check out the question What should every programmer know about web development on programmers.stackexchange.
I'd suggest you first read this post in Stack Exchange Programmers:
https://softwareengineering.stackexchange.com/questions/46716/what-should-every-programmer-know-about-web-development
It is a very similar question to yours, and has many helpful answers.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
One of my freelancer friend work with wordpress, he knows basic php, but does not working in core php program. During his work he take sample code from Google and then edit that code and use on his client project. It always works and he says he could understand most of the language. Because he works in basic level of c,c++,java,html,css,php. His motto is -- work and learn though it takes much time.
On the other hand, another my friend learn php from very basic and want to be a core programmer. His motto is -- first learn then work with less time.
I am just confused what can i do. If everything is possible from Google after learning basic php then why i learn php very deeply. Is it good to code myself whether all type of code is available on internet?
I think that skill level is tied to compensation. The better skills you have, the more valuable you are. A lot more people can take some PHP code off the Internet, changed it up and make something work. However, a lot fewer people can build architecturally sound and solid software solution to some problem.
It all depends on what you want, if you want to be a top notch software developer, then you should have an attitude of one and try to improve all the time. If you want to get buy and make some money tweaking WordPress sites, fine. A lot of people do fine with that.
I am not exactly sure what kind of answer you are expecting, but I can tell you this:
I have been working for more than 10 years as a programmer, and I am STILL learning every day with every new project, and even though google is a great help and the kind of info you get there is just incredible, it still doesn't replace your own knowledge and programming skills. Every example you can find on google will still need tweaking and that is where you will NEED to know what you are doing.
I think the point is this: If you are going to work making small websites, charging $10 / hour and just doing basic contact, signup and data forms, then forget about learning php deeply, your friend is right to learn as he goes. And in this case, you should dedicate your time to learn other very important skills like databases, SEO, mobile compatibility, etc, those will give you a greater opportunity to get more customers and projects.
However, if you intend to become a serious programmer and work in large projects, charging 3 or 4 times that amount, then forget about small websites and learn deep programming logic that you can apply in any kind of language or situation.
In the end, there is not right or wrong path, it just depends of your own goals and needs.
I'm using Drupal a lot right now for large e-commerce websites that connect to in-store POS systems. There is no way I would be able to just take code from Google to create these websites. Sure, I can "borrow" simple snippets from documentation; however, on a professional project... this doesn't get you far.
If you want to create an unsecured website, waste 90% of your time on simple bugs that someone with basic knowledge could fix instantly... then sure go the lazy route.
it depends on your objective. If your objective is to "learn PHP", then you should definitely learn how to use the language, etc. that way you can make things on your own, rather than having to google things on how to do it.
Googling for solutions is okay as well, however, if you don't know how the code runs, or understand how it works, you won't be able to change it on your own to make it work with what you are trying to do. That is the benefit of understanding the language; you can take existing code, and modify it to make it better or work for you.
To apply correct solutions you need to understand how they work, and what are limits for the particular solution, be able to adopt such solution to the problem. It is like if you would build from cubes - when you are child, you need only basic gravitation rules, but if you want to build really big tower from same cubes you need know more physics and maths, and possible, to choose another construction units.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Me and my team will soon start the development of a new web (vtv) service.
Most of the stuff will be processed and handled through a json api but we need a decent control panel for users who want to access their data in a gui environment.
We are debating if it's worth the time to develop the control panel with a framework such as knockout or backbone or if we should just stick with our classic stack.
As a devoted Javascript fan and developer I have used both knockout and backbone for some minor apps on my spare time and I can already see how hard it is to put all these peaces together in a real production.
Is it really worth to spend extra money to follow the trends and give the user a speedier gui?
My company seems to be interested in fast bucks solely so please tell me arguments to use!
Thanks =)
I can't comment on Knockout, but Backbone is absolutely brilliant. It's a small framework to learn, and once you get the hang of it, you'll find it does what every framework of its kind should do: implement the bits that you would have implemented anyway, and think about the issues related to that that you'll realise a little down the line.
It provides a sensible event and object model system that handles the business of keeping server-side objects and client-side objects in sync and has a sensible view model with event bindings linking the two.
So to address your question, it really depends on what you're doing. If you're writing the kind of asynchronous application that uses models and gets data from an API, chances are you'll want to use the same architecture as Backbone. If you're not, you've either designed something very different and it'll be no use (so you can say 'it just doesn't fit') or you've made a mistake in your design and you'll soon need to re-write!
Knockout or Backbone will not help you give the user a 'speedier gui'
However, it will make development easier. The frameworks impose a structure on your code - which means its easier to maintain, other people on your team can read the code and understand the flow more easily. This means you can respond to user feedback faster and give your users a positive experience
For speed of the UI itself, you should use speed optimization techniques starting with investigating the causes of slowness of the UI
In general, I'd suggest you go ahead with the framework of your choice. Only good can come out of it
Generally you should choose a framework / library because it gives you added value or shortens development time.
If you have the time/money and want to learn to implement new technologies while writing software, that's great, go for it!
If you need to get things done quickly, use the right tool for the job.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am about half way through coding my own Php Content Management System from scratch, but now I am nearing the end of coding new features and making it look good and am now being faced with the big issue of security. I know little about the security side of Php except the fact that it is very vulnerable with SQL injection etc. Let's just say my website was going to have loads of user generated content and be like facebook, is that something one person could secure by themselves or am I better off paying someone to do it for me? if so, anyone know how much that would cost?
Any feedback would be greatly appreciated.
Update:
Any opinions on http://www.incapsula.com ?
With so many mature PHP CMS systems available, the only reasons I can think of for writing one of your own would be as an exercise (to learn something), as a challenge (to see if you could), or if you needed some specific feature that the existing ones didn't have. Even if you did want a special feature, I'd still look at extending an existing CMS rather than writing one from scratch - many of them cater for modules and / or plug-ins.
Pros:
It is fun to build your own CMS.
You will learn a lot. It might be the best way to learn PHP, since you will have to deal with a lot of different aspects of it.
Cons:
Your first CMS will always have a "funny" design.
You will have bugs and security holes (but most of the times, people will not notice the security holes). ;)
You will have to spend (much) more time on your CMS than what it would take to build the site with an existing CMS.
Conclusion:
Of course you shoud build your own CMS! You are not a real PHP programmer if you never have built your own CMS.
Is it worth it?
Completely up to you. I'd say it depends on what your goals are with this CMS (generating revenue, just for fun, etc) It's nice to be able to show someone and say "I made that from nothing!"
The only start up costs would be your domain name and monthly web hosting (unless you hire people.) $1.18 annual for a godaddy domain, $8 for hostmonster hosting.
Security's a big issue yes, but maybe that shouldn't be the deciding point in doing what you want or not. There's alot of documentation on stackoverflow and others regarding the subject that could help you.
I've recently created a CMS from scratch with no prior knowledge of anything beyond basic HTML. It's rewarding in many ways and you may even find yourself going down a programming career path.
I think it'd be better to learn how to protect your system. Securing php systems is actually not that big a deal, considering you were able to code your system from scratch.
Just remember, to prevent sql injection: always escape user input entered to the database, mysql_real_escape_string() usually does the job. And use htmlentities() before displaying the content in html pages.
Read on securing your PHP and you'll save yourself the trouble of paying someone to do it, plus it'll help on other projects.
Trust nobody - especially anonymous people! Therefore inject into you mayor asset some safe data. Seems rather wise strategy
Why make your own CMS? Drupua, wordexpress. Jomala might do with some tweaks?!
Yes it is worth making a CMS from scratch. Because you have/only have the features that you only need. Which makes the script less extensive and fit your needs like an Armani suit. Let's consider Wordpress as an example, when your site gets terribly big you would need to terribly tweak it. It has alot of features, and some of them you might not need. The pro if using already-available ones is the community finds the script's bug/holes for you and all you need to do is just update the script.
As for the security part, you can try to find the holes by yourself or hire someone of which their rates may vary. But you might not want to entrust your script to others unless they're trustworthy.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I would really like to get a list of hands-on approach books, where you mostly learn by examples and not only theory. I'm looking for CSS/PHP/SQL maybe and any other hands-on books.
For example, I wasn't very comfortable reading HTML Dog (although it's a good book) and would really much prefer books like CSS Anthology 101 Tricks, where you learn mostly by examples / questions etc.
I tried to find those kind of books but couldn't really and I think I'll benefit more from them then a pure theory book where you read 300 pages without writing code.
The Head First series by O'Reilly is a beginner series that teach you entirely through applications / examples. EDIT: the Head First series is definitely not like any technical book you have ever read before. First and foremost it is designed to stimulate your mind and get you thinking about what you're learning creatively (e.g. cross-word puzzles, brain teasers) which, combined with the examples/code really help you understand the concepts.
Head First Labs
Head First Web Design
The Cookbook series by O'Reilly is another good (more intermediate) series that teaches you through different examples. The structure of the book CSS Cookbook, for example, is just "recipes" (tutorials) on how to solve certain problems or accomplish specific tasks.
I know you're asking about books, but since you mention a hands-on thing, I'll bring up my method. I'm more of a deconstructionalist. This probably works best when you've already got a programming language or two under your belt, though you don't mention if you're in that category. Note: this requires having a web server/site available to you and some existing knowledge of probably ftp/ssh.
To do this, I like to take working project and tinker with it, and then perhaps start coding a plugin or something. PHPBB is old-ish now, and originally more done for PHP4, but the source is available. Also, Drupal and WordPress. Drupal is a great tool. Drupal is the best thing since sliced bread, imo, and has a huge community and selection of free offerings. If you really wanted to get your feet right in there, then there's also CakePHP, which is more of "just" a framework, and it's a smaller community. A required tool will no doubt be PhpMyAdmin, so get that, as well.
What you could do is get one or more of them installed on a web server, and attach a few other existing plugins like a working blog or cart, and then get in there and see how things work by making raw code adjustments. Cake may be less threatening, though. Then, just return back to ask specific questions, an you'll be an expert in 3-6mo, depending on effort (and aptitude? :)
For PHP/mySQL try Larry Ullman's books:
PHP 6 and MySQL 5 for Dynamic Web Sites: Visual QuickPro Guide
PHP 5 Advanced: Visual QuickPro Guide
I found the books very easy to read through, there is a small amount of theory involved, but mostly practical code examples.
I gained a lot of contemporary web development methodology from Practical Web 2.0 Applications with PHP. It was fun reading through as I was enjoying creating all cool stuff by my own. As this book title Web 2.0 you'll find a good examples on making things usable with HTML/CSS.
For php, I invite you to read the indispensable PHP and MySQL Web Development book
For the CSS/HTML, I recommend the Meyer's references (book, articles):
CSS: The Definitive Guide, Third Edition
Meyer's website
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
Now days most of PHP web development companies use PHP frameworks or open source products for developing websites but is that a right approach? If so but what will happen to the PHP programmer skill and knowledge?
Don’t you think using approaches such as “PHP frameworks or open source modification” will kill the programmer skill over the time? Is that really worth it a website developer becomes a better PHP framework writer instead of being a better PHP programmer?
I absolutely have to disagree here. When is started programming, it was PHP and I had no clue what I did. I wrote everything myself and had no will to even look at framework. I spend way too much time in work that repeated again and again.
Frameworks are one of the most useful tools IMO (not only web frameworks)
They speed up development in lots of ways
Looking at the sources, I learnt more about good practices, design decisions, directions to think to
Taking bits and pieces of the framework and use it in other apps where the use of a framework is not possible
They help you focus more on your work (MVC, DRY, KISS, ...) instead of fiddling around with the basic
Most established frameworks have a huge user-base and are very well tested.
I think looking at other code helps you be better and more efficient over time. SO is a very good example of this.
Using a framework doesn't make you a weaker programmer, otherwise I could argue you should write you next web app in assembeler, not much fun.
A framework should be thought of more like an extention to a language, a DSL if you like. For example CakePHP is just PHP with extra cool-stuff that makes handling databases and sessions "cake" - excuse the pun.
By using a framework you take the 'yuk' out of preogramming, and allow yourself to treat data as objects, for example.
If you still feel you shouldn't use a framework, then write one, then use it! By this reasoning you should also go and rewrite the PHP libraries and interpreter, however I don't recomend it.
In my opinion, I don't think frameworks "kills the skills" at all, instead it allows skills and more creative workflows to develop, which ultimately leads to enhanced skill. Also, the understanding of how large scale applications are developed are increased with effective use of well developed frameworks, which is definitely a big plus in the end too.
It allows applications to be developed more quickly and efficiently; and the end result is what matters. If you write PHP and don't know assembly, it doesn't mean you've lost your skill - you've simply focused on a higher level of technological progress in this modern age.
I think it's important to know some of the underlying concepts, such as creating and interacting with databases, OOP, design patterns. Frameworks can introduce you to these concepts without making you learn everything at once. They also have the advantage of several thousand hours of development time already invested, a community of testers and bug fixers, etc.
Anecdotally, you hear stories of people starting with a framework and slowly replacing parts of it as they optimize sections of their site. They distill the framework's operations down to their specific requirements. You can't take this route if you aren't a strong programmer.
Frameworks allow you to do work without reinventing the wheel. And the people working on this framework are probably a lot smarter than you, and they have spent a lot more time thinking about the code.
At the end of the day, it's about getting things done. Any given individual may be more productive with a third-party framework, or without. But a framework is the conclusion of any large project, whether you end up creating it yourself or you rely on the work of others.
To work on PHP based framework, you need to be a better PHP programmer.
so, your skill level will increase and it will not decrease...to tell with an example.
We can start writing all the program in assembly language, why do we use high level language...? If you find the answer for this, then you will get the answer for this problem too. :-)