May 31, 201511 yr I have skills in: HTML, CSS, Javascript, Jquery, Ajax, JSON, some PHP, adobe cs, SEO, copywriting, some marketting, analytics. Is there anything else? I haven't really aced any, but I am getting quite good with front end developing, I probably lack a bit of skill in photoshop to produce my own designs to be added to the website, my SEO is moderate, but my copywriting sucks and marketting I'm quite weak on also. I would think I had to know how to produce a wordpress custom theme for clients that want CMS websites. All my photoshop is quite weak, I can only really copy other people's work and edit it a bit, I've made logo's before. I have a feeling that I need to know other things but can't think of what, is there anything else I need to know? I lack confidence at the moment to produce a good website, I'm getting there but haven't mastered anything, people here seem to be more skilled than me, I've read many books but I have a feeling they know things that aren't in the books I've read.
May 31, 201511 yr To be a freelancer you need: 1) A skill that other people will pay you to use 2) The ability to sell that skill to people 3) The discipline to do everything else that goes with a business (bookkeeping, time management, etc)
May 31, 201511 yr I would say that the most important thing to becoming a freelancer is discipline; without it you will simply fail
June 1, 201511 yr Well for one, you'll never be able to offer everything. It's simply not feasible. Get it out of your head that you're an expert at everything - you're not. Secondly, you're not offering people Javascipt, JSON or CSS. You won't get very far offering your services like that. This highlights a huge issue you have at the moment - you need to learn how you're going to sell your offering. At the highest level, you're offering a product that will meet one or many goals for a company/individual. Not Javascript or JQuery (lol at them being mentioned as separate "skills"). If you're freelancing in the web industry there is no point saying you can do HTML/CSS and JavaScript - they are assumed skills. Those are the absolute basics that any freelance designer/developer should be extremely familiar with. More importantly, you should write down a list of things you DON'T have to do when freelancing. When you freelance you have to take care of everything. Project management, networking, invoicing,. product development, coding, learning new skills, keeping up with current trends, managing multiple project stakeholders, marketing, etc etc - then, behind the scenes, you should be thinking where the next project is coming from. I have come across many freelancing who think they know everything and try to offer services as varied as web development, to copyrighting, all the way to marketing. Stop before you start. Personally, I wouldn't recommend freelancing to anyone who hasn't worked in some sort of agency environment for a long time and has experience. I've worked in technical/web agencies for the last 11 years and still find freelancing challenging. If I had to sum freelancing up down to a single absolute skill you must have, I'd say it's the ability to sell yourself and your services, within the context of the client's goals. If you can't do that, you'll find it pretty hard going. That's only something you get through either lots of trial and error, or working in agencies. Another equally as important point is this. What do you offer that the next freelancer doesn't? What's your USP? Unfortunately, your topic aligns with my biggest surprise when I went freelance (as a developer) last year. I was gobsmacked at the lack of developers out there who can actually code. Yup. Lots of people saying they are "Wordpress experts", "Wordpress developers" etc, but if they can;t find a plugin they're stuck. The limit of their coding ability stops at creating some basic short codes to create a bit of HTML markup. I've had some fairly large local agencies contact me who need custom work doing, such as an API integration. Great post 100% agree here, especially the opening line Well for one, you'll never be able to offer everything. It's simply not feasible. Get it out of your head that you're an expert at everything - you're not. I see this sooo often with people trying to be a jack of all trades. To be an expert in design takes years, same for front-end same for backend, then there's the mountain of new stuff constantly being released, keeping up with any one is a challenge. To do all 3 is possible but would be a monumental effort, even for the brightest, and still they are not going to be an expert, there simply are not enough hours in the day to keep up with all aspects. I also see this a lot: Unfortunately, your topic aligns with my biggest surprise when I went freelance (as a developer) last year. I was gobsmacked at the lack of developers out there who can actually code. Yup. Lots of people saying they are "Wordpress experts", "Wordpress developers" etc, but if they can;t find a plugin they're stuck. The limit of their coding ability stops at creating some basic short codes to create a bit of HTML markup. I've had some fairly large local agencies contact me who need custom work doing, such as an API integration. IMO you cannot seriously call yourself a developer if you're working like this designer maybe, aspiring developer yes. But developer? No. I've always tried to write my own JavaScript, even when I was just beginning. Re-inventing the wheel is necessary if you are going to learn, my early attempts took a long time to get working and poorly written but it's just something you have to go through to learn how to write things. Now writing most DOM effects like parallax, sliders, lazy-load etc is pretty trivial. Over time you also build up your own library of common functions, best of all if there's any modification needed it's easy because you built it, you know exactly how it's working, what the limitations are etc. Edited June 1, 201511 yr by rbrtsmith
June 1, 201511 yr @@rallport spot on! Unfortunately, your topic aligns with my biggest surprise when I went freelance (as a developer) last year. I was gobsmacked at the lack of developers out there who can actually code. Yup. Lots of people saying they are "Wordpress experts", "Wordpress developers" etc, but if they can;t find a plugin they're stuck. The limit of their coding ability stops at creating some basic short codes to create a bit of HTML markup. I've had some fairly large local agencies contact me who need custom work doing, such as an API integration. IMO you cannot seriously call yourself a developer if you're working like this designer maybe, aspiring developer yes. But developer? No. I've always tried to write my own JavaScript, even when I was just beginning. Re-inventing the wheel is necessary if you are going to learn, my early attempts took a long time to get working and poorly written but it's just something you have to go through to learn how to write things. Now writing most DOM effects like parallax, sliders, lazy-load etc is pretty trivial. Over time you also build up your own library of common functions, best of all if there's any modification needed it's easy because you built it, you know exactly how it's working, what the limitations are etc. This right here summarises my main problem with WordPress and other plugin heavy cms in a box type 'frameworks'?! (not really sure what to call them). And the low end pile it high sell it cheap 'web design companies' out there even advertise 'must know WordPress' alongside 'PHP knowledge an advantage'
June 1, 201511 yr @@rallport spot on! This right here summarises my main problem with WordPress and other plugin heavy cms in a box type 'frameworks'?! (not really sure what to call them). And the low end pile it high sell it cheap 'web design companies' out there even advertise 'must know WordPress' alongside 'PHP knowledge an advantage' I agree but we have built some wonderful stuff with WordPress, not all those who use it are bad, but I agree it does promote that mentality of throwing plugins at everything. TBF if you know PHP you can learn the WordPress stuff in a matter of weeks, even less for simple borchure style sites. It shouldn't be learnt the other way around. Suppose those also ask for jQuery knowledge without a hint of JavaScript. That said I battled when I arrived at my agency to get them to drop Bootstrap, now we have our own custom framework. Now I am working on getting us to move away from WordPress as our main go-to. It's great for sites with a basic back-end structure. anything complex or web-app should be built using something else though. One thing that's good for us with WordPress is that using it allows us to spend more time in the design, consultation with client and front-end stages, so for brochure sites we can spend more time on the bits that the client really appreciates. horses for courses Edited June 1, 201511 yr by rbrtsmith
June 1, 201511 yr Just out of interest, what is it that you don't like about Bootstrap? I've found it okay for knocking up very simple websites quickly. It makes a lot of design decisions. I found myself spending a lot of time undoing or removing styles. The framework I use now I only add styles as it's much more design agnostic, it's just a collection of layout abstractions with very little visual styling. I also find it hard to trust JavaScript where the developers follow bad practices such as ommitting braces and semi-colons. Semi-colon avoidance can create really frustrating and hard to find bugs, all to save a single keystroke. There's other stuff I find wrong with it too. That said the grid is mostly very good and I used it as inspiration for the grid we use now, albeit with some tweaks. I like to think of Bootstrap as more of a package or a product than a framework. A framework is more Like Zend, or Angular - something you use to add things too, you should never have to remove anything from a framework. a framework tends to be slightly more low level too. Compared with what we use now, the time spent writing new styles is similar to the time it took to remove or override boostraps styling (With over specific selectors) so after testing it was easy to convince my agency that this is the way forward. Bootstrap can be useful if you want to rapidly prototype a backend or a javascript application and don't care so much how the UI looks. I have done this, then once I'm happy with everything apart from the UI Bootstrap gets ditched and in comes our own. I guess it can also be useful for those who don't like writing CSS, so I can see why some backenders love it for prototyping systems. Edited June 1, 201511 yr by rbrtsmith
June 1, 201511 yr Some good stuff in this thread. Freelancing throws up all sort of challenges, and doing all that lovely front end stuff is only part of it. For instance my day today has been filled up with: - 2 conference calls - review some design mockups for a new site I'm going to build and feed back to the designer - diagnose some site issues following a server move - catch up with two clients regarding their site builds - skin a custom cms using a premade set of templates and tweaking to suit - diagnose some email problems a client was having - answer a ton of emails! I think one of the key skills every freelancer must have is the ability to problem solve
June 2, 201511 yr Personally, see little point in taking the time to develop a custom css framework. Bootstrap is there, tested across multiple browsers by thousands of people. Granted, if you;re using Bootstrap incorrectly you will produce sites that look the same - talking to those people who just reference the full boostrap library through a CDN and don't use LESS/SASS to customize. There's quite a lot of very senior front-end devs that I've spoken to about Bootstrap and they disagree, Not a single one would not use it in any of their projects. It was these comments from them that made me think I should build something myself. Initially it was more a learning exercise but what I have now is more of a true framework. A framework should not make any design decisions. Bootstrap makes a whole heap. Using Bootstrap 'correctly' requires you to write bad CSS. You can include whatever modules you want, but to make those modules customised (Beyond changing colours) requires you to override styles. A framework should never force you to do this. It also doesn't have SVG support out of the box, using icon fonts which are vastly inferior. Uses a fixed width breakpoint for the navigation. What happens when a client adds in more items? or the language is changed by the user? It breaks. The slider has poor mobile UX - not ability to drag the slides. The grid just defaults to having single columns at screens smaller than 480px, it's common to have multi-col layouts even on mobile now. The gutter on the grid does not narrow for smaller screens. No lazy loading image assets out of the box. Font sizes are not dynamic by default: i.e. they stay the same size across all screens. I want large fonts to decrease at a greater rate than smaller fonts to improve mobile readability. Bootstrap does not offer this. JavaScript written using bad practices. Apparently Douglas Crockford asked them to fix this but they ignored the request. Missing off semi-colons is a big no-no and just comes down to laziness. No built in structure for adding your own css and organising this - you are on your own. No ability to partially include modules. What if you only want a small portion of the grid? Bootstraps grid (which you have to include all of it if you are to use even the smallest portion) is very weighty, it's a similar story on other modules. I could go on, there's a lot wrong with it. Yes it's been tested and doesn't break but it has many issues I've not listed here. The framework I built, solves all the above issues, I've built over 100 projects on it, while gradually adding to the project and while initially bugs were cropping up, now they are very few and far between. What I don't have is comprehensive documentation. I have no real desire to release it because it's something that works for me and my team and there's a million and one frameworks out there, For those that don't have the time to build their own I'd recommend Harry Roberts' Inuit.css it was built as an alternative to Bootstrap and follows the principle of not making design decisions. It is a big improvement of Bootstrap. Harry himself says to use Bootstrap for prototyping / testing purposes only. I urge you to check it out. It's important that your product looks unique. It's also important that your CSS is well written and organised otherwise it becomes a maintenance nightmare. I agree it's not always a good idea to build framework from scratch, mine would take hundreds of hours to build if I was to start from scratch now. But that doesn't mean you should use Bootstrap. Use something like Inuit. Edited June 2, 201511 yr by rbrtsmith
June 2, 201511 yr Well as I say, Bootstrap is a framework and a starting point. 90% of what I need is already completed and tested. I'm yet to see any downsides to it. All those points you mention just make me say "meh". Only one I really agree with is the carousel - that's know for being bad on accessibility. Still, it takes seconds to exclude that from your build and use a better one. Things like lazy loading, easy tom add in if need be. Icons support - yep, Bootstrap ships with glyhicons. You don't have to use those, easy to exclude that particular sass/less file and move on. The one about having no built in structure for expand the framework? It's built using less/sass so you have as much flexibility as you need. Dynamic font sizing. There are a couple of sass/less setting files where this can be changed. 2 minutes "The gutter on the grid does not narrow for smaller screens." - if you really want that add a media query - 2 seconds Just had a quick nose at inuitcss - can't really see it;s doing anything more than with bootstrap. I need to be developing, not writing my own frameworks Only real annoyance with Bootstrap I've come across was this week. I had a site that had drop down menus 3 levels deep. The responsive navbar couldn;t cope out of the box with this. Took about 20 minutes to solve. I'd be really interested in seeing some of your framework though - care to share some via PM? I'll put it up on GitHub sometime. I think you should look deeper into inuit though, it's VERY different to Bootstrap like I said Bootstraps biggest failing is all the design decisions it makes. If you want something generic then great. if you've got a design that is completely different to the modules Bootstrap provides you need to build them from scratch or override the bootstrap styles which results in really bad code with often insane selector chaining. With inuit because there's no actual styling just architectural layout and positional constructs you just build it out with any design you choose, no need to remove or override anything. I gather you are more of a backend guy so you might not be as concerned with making unique front-ends as I, or other Front-end devs are. Something like SVG I find very exciting, and a project without them is more than a 'meh point to me'. I'd say Bootstrap is aimed at more backend guys who aren't interested in writing loads of CSS, and just want to get a UI up and running quickly. It's good at this. But those who make a living in the Front-end are limiting themselves if they don't try out alternatives to Bootstrap.
June 3, 201511 yr I am a developer yep, but do all front end work myself. Personally, I haven't ever found Bootstrap (and Foundation -I use that semi regularly too) to be limiting in any way when used correctly. Have used the less files to change column widths, gutter widths, the number of columns (some designs seem to benefit from more than 12 columns) and break points. I mean if Bootstrap really is limiting me I'd be highly interested to see the framework you speak of. Always keen to improve my front end workflow, which at the mo consists of Bower, Gulp/Grunt and for Laravel projects Exlixir (a very sexy Gulp API). Probably one of the main reasons I've always used the popular frameworks is due to support. If I'm having a problem with the framework, there is always a fix online. There are a lot of people maintaining it right I'll put it up so you can take a look. There's next to no documentation besides comments in the code as there's only really me that uses it, it would take me a whole heap of time to write it, so for that reason I don't expect it to be easy for anybody to use. Of course I could never compete with Bootstrap in terms of bug fixing. The basis of what I have is: It's built on the ITCSS system, which was devised by Harry Roberts: https://speakerdeck.com/dafed/managing-css-projects-with-itcss It has an options file which is where modules (or module partials) can be included along with atomic helper classes. (Single property trumps) Built heavilly around the OOCSS principles to reuse a lot of cosmetic free design patterns. It also uses BEM naming conventions throughout. Most of the SASS files contain markup in the comments so I can quickly open a common module and just grab the markup and paste it in. This saves me a lot of time when I have complex modules, also helps to show what a module does, just paste it in and take a look at the results. Navbar calculates the breakpoint based on the width of it's contents plus any other elements (logo for example) that are placed alongside. Contains a large number of JavaScript modules that can be included by uncommenting the file, which then attaches to the global APPNAME object, and then can be called in any order, allowing all to be concatenated into the same file, but still control the execution order and eliminates global variable clashes. (Each module has it's own scope and can share values with other modules via the APPNAME object. JS modules are things like Lazy-load - far more efficient than ones you see, and window doesn't grow as you scroll and images load in : http://rbrtsmith.com/2015/02/building-a-high-performance-lazy-load-module/ , Smart Equal heights that normalizes heights by rows, not every targeted element, modal dialogs + a load of other common functions. Built in google maps module, sometimes has to be modified, but set up to match most of the proects we do. As of now it comes with a start template with a nav-menu and banner and a base footer (Just to speed up things for me as this is very common in my projects). Comes with a library of SVG icons that I commonly use and everything is setup to allow very rapid svg spriting + IE JS fix for loading external SVG sprites. Uses grunt with the Gruntfile already setup with all the taks that I commonly use: Section of my package.json shows what I currently am using: "devDependencies": { "grunt": "~0.4.2", "grunt-autoprefixer": "~0.7.2", "grunt-babel": "^5.0.0", "grunt-bowercopy": "~1.0.0", "grunt-contrib-concat": "^0.4.0", "grunt-contrib-copy": "^0.7.0", "grunt-contrib-cssmin": "^0.12.3", "grunt-contrib-imagemin": "~0.4.1", "grunt-contrib-jshint": "^0.10.0", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-sass": "^0.7.3", "grunt-contrib-uglify": "^0.7.0", "grunt-contrib-watch": "~0.5.3", "grunt-favicons": "^0.6.4", "grunt-svgstore": "^0.3.4" } One thing to note is that you don't just put all your styles into one single file here. Each new BEM block goes in it's own file, inside the appropiate ITCSS folder. This makes maintenance very easy and should the website scale, doing so is pretty trivial. You bascially add to the framework / build it out. rather than separating the framework from your own styles. I often find myself building out some of the modules. For example: I have a bare-list module: @if ($options__use-bare-list) { /*------------------------------------*\ OBJECTS -> LISTS -> ##BARE-LIST \*------------------------------------*/ /** * * Removes all margins, padding and list styling from a list. * <ul class="bare-list"> <li>...</li> <li>..</li> </ul> Adds spaces between list items <ul class="bare-list bare-list--spaced"> <li>...</li> <li>..</li> </ul> * */ $list-spacing: $spacing-unit; $spaced: false; .bare-list, %bare-list { margin: 0; padding: 0; list-style: none; } @if ($spaced) { .bare-list--spaced { >li { margin-top: $list-spacing; &:first-child { margin-top: 0; } } } } } I might have a project where theres occasions where the spacing between elements should be double so I will modify like this: @if ($options__use-bare-list) { /*------------------------------------*\ OBJECTS -> LISTS -> ##BARE-LIST \*------------------------------------*/ /** * * Removes all margins, padding and list styling from a list. * <ul class="bare-list"> <li>...</li> <li>..</li> </ul> <ul class="bare-list bare-list--spaced"> <li>...</li> <li>..</li> </ul> * */ $list-spacing: $spacing-unit; $spaced: true; .bare-list, %bare-list { margin: 0; padding: 0; list-style: none; } @if ($spaced) { .bare-list--spaced { >li { margin-top: $list-spacing; &:first-child { margin-top: 0; } } &-double { >li { margin-top: $list-spacing*2; &:first-child { margin-top: 0; } } } } } } Markup for that addition would then be: <ul class="bare-list bare-list--spaced-double"> <li>...</li> <li>..</li> </ul> Of course this framework is assuming that the user is very well aquainted with Sass, and CSS in general so they don't go breaking things. I don't think this framework is a good place for a newb to be starting. I've never managed to break anything working this way but it is kind of a drawback if I were to try and release it. At first I wasn't keen on this idea but it's since served me very well for the past 10 or so months. Come to think of it, more than a true framework this is more like a starter/base for a project because those are meant to be modified, whereas a framework generally is not. I'm not 100% sure what to call it lol. I am also continually adding new things to it, finding better ways of doing things so in a few months it's likely to look different. Edited June 3, 201511 yr by rbrtsmith
Create an account or sign in to comment