Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "wk132"
-
- Think first, write later;
- Do not rush into purchasing servers. You might not need them for another 10 months;
- It takes away a lot of family time to do side projects;
- NOT playing any games saves tremendous amounts of time. Also applies to watching TV;
- If you get stuck - get some sleep. Morning brings you better ideas;
- Write proper abstractions or you'll end up refactoring everything way more often that you'd like;
- Side projects need a loo-ooooot of your will and determination19 -
1. Just because it sounds cool doesn't mean it is.
2. Automate all the things. If you can see everything from cli all the better.
3. If it isn't commited and pushed, it doesn't exist or won't after a hard drive burnout
4. Everything on your workstation should be quickly reproduceable or in a git repo.
5. Murphy is a bitch3 -
I learned that the technologies I use for my side projects are cooler than the side projects themselves.
-
CEO - So... We'll have a new side project, it's a small thing, I spoke with a guy, he needs just a small thing...
Me - Ok....... So, what do you need me for?
CEO - Not much, this guy started a project but wants your help on a small part, and you already did something similar for us, so it should be fast, just copy and paste and change a little bit. You probably know better than me.
Me - *Sigh* ... So `friend`, what do you need from me?
Friend - So, I made a crawler that is storing some information on a local file, I just need to add multiprocessing and multithreading, a producer-consumer system with a queue so I can automatically add new links every now and then, a failback system, so when a process doesn't finish, it should be re-queued and crawled later, store all the information on a database cluster (that is not set up), [......]
Me - And when is this supposed to be up and running?
Friend - Your CEO told me you could do this by the weekend. Can we finish this by Friday?
Me - *facepalm* FML13 -
Side projects - Something you would like to spend more time on, but since you can't, you will never get them done.2
-
If nobody hates you, you're doing something wrong ~ House MD
Tl;Dr : I'm pissing the right people off and my God I like it
That's what I've known and have confirmed doing my current side project with my gf, we are working on a ratemyprofessors clone with extra spicy features, one in particular is so spicy some teachers will be put in a position in which they would rather grind hot peppers with their butt cheeks.
Don't get me wrong, there are good teachers (some of which actually showed support) but some are not good teachers and some aren't good people either; I've decided it's time to stop complaining and take action.
We recently released an alpha and I presented it to a teacher I had this semester (one of the "not so great" kind) as a DB proyect cuz fuck it I'm not doing 2 projects.
This teacher is your run of the mill "I'm lazy and I don't care" teacher and she ran the classroom like a shitty kindergarten, so much so, one of the teams was presenting a buggy admin site as their project and she started talking on the phone! Right up on their faces!!
My turn, I go up and handle her a 30 page printed thesis of my project and said that unlike my mates, I was going to start presenting the idea and then the actual software...why is it printed?, She said; Because I won't be projecting the PDF ma'am, I actually made a professional presentation and that way you can read more technical details while I give a broad overview...
I started talking about the huge issues students face and my research about it, undisciplined teachers, no class structure ~ abrupt interruption ~ "yeah I know like, you are giving so much statistics and numbahs but where is the database?"
I got pissed off because the whole purpose of printing and giving her the docs was for her to ask specific questions AT THE END! So I told her I was getting there and to ask questions at the end...I start showing off the system's sweetest features... everyone got quiet...a girl on the front row kept looking at the teacher and then back to the board with her eyes wide open, the teacher was visibly upset.
I asked someone to please help me by using the site being projected for everyone to see, he searched the teacher's name and it obviously popped up cuz I scrapped the whole teacher index site... some people gasp and others start murmuring.
She freaked and started arguing saying that frontend can't be just HTML and CSS, where did you mentioned x and y feature? admit it's just teacher evaluations! where did you get the teacher names? I want the scripts!....it went on even 10 minutes after class and the next class with a police like interrogation.
So yeah, something tells me I'm not getting an A, but I'm happy after all because that's the kind of reaction I want from those types of professors.
Worth it 😎8 -
Opensourcing is great
getting other people involved is difficult
Doing a group project with volunteers is impossible.5 -
I've never ever fully completed a side-project like I envisioned it to be. If I had, I'd have my own company already. It's mostly because I didn't have the time (no, that's a lie; or just an excuse). It's mainly because I haven't been motivated enough to see it through to the end. My motivation life-span ends when I get distracted by something else and in the end ends up like the Commit Strip.2
-
Completing 95% of a project is infinitely more difficult than completing 70% of the project.
I am still in college studying for an electrical major and my side projects are the only dev work I do, so I don't even have any excuses to not complete them, I just jump to the newest project idea I had and forget all about the old ones until one day, several months later, I look at the code I wrote, get disgusted by how terrible it is and lose all the remaining motivation to work on it.5 -
You begin on a side project, you get bored before it's finished and start another one. Repeat...
#mylife3 -
If you're the alone maintaining them, you learn a lot.... But they increase responsibilities.
I started with 1 open source project 2.5 years back. Today I'm maintaining more than 20 OS projects. And believe me it's really difficult to support them, maintain them5 -
1. Focus on learning; earning should come secondary
2. If it doesn't add anything to your resume, it's probably not worth picking up
3. Do not re-invent the wheel. Explore third parties and libraries thoroughly. Use them as much as you can.
4. If you stuck at a problem for more than 2-3 hours: post on stackoverflow
5. Plan, create deadlines, and focus as if an executive chose you.
Lazy = failure!5 -
Hold on, people actually finish side projects? Personal side projects? Am I the only developer who procrastinated side projects to the point that I forget about them?3
-
Writing clean code.
Writing useful comments.
Commit before experimenting.
Just anything to prevent Technical Debt. Just because it works doesn't mean it should be kept as is. Later down the line you'll need to add a new feature and you'll spend 2x more time fixing the things you took for granted. -
Fuck NodeJS and Python, C# and strong-typing is all I need in life. (But python is sometimes useful)10
-
My lessons both come from my current side project (I will share it with you in a week or two, the website isn't finished yet):
1. Every project comes to the point where it hurts to continue. Keep pushing, the result is worth it.
2. You aren't as good as you thought you were when you started, but you'll be better than you ever were when you finish.
3. Sometimes, there's more points to a list than you'd expect.
4. One hour per day is easier than five hours a week.
How?
Well. I started out my project knowing some C#, but Jack shit about unity. I know most of what I might build will end up being shit I'm gonna regret, refactor and recycle later. But I don't give a fuck. Doing it is better than planning it.
It sometimes hurts to get rid of a carefully planned algorithm that took hours to build because it fails in practice. But it's the right thing to do.
Never plan too much. If I'd have planned this project out, I wouldn't even have started with what I'm good at: write code, break shit and experiment.
It's easier to progress slowly but steady. Look at some awesome games that have been worked on for ages while the public had their say (RimWorld, Project Zomboid, Dwarf Fortress...) as opposed to those that are developed behind closed doors and rushed to the market before Christmas or some other major event (Mafia 3, Fallout 76, Fallout 4 VR...). Progress slowly, deploy early, push often. And the one hour per day approach is a good way to do this. -
Docker is awesome for minimizing environment problems.
Current side project needed a database, a web server with php and a transpiler server running. Before, other people developed using XAMPP on windows. I dockerized the project and have now just one build script setting up everything the app needs, regardless of the underlying operating system.1 -
This temporary hack will just temporarily fix this problem. We will come back and actually fix the problem later.
We never come back to fix it later. This shitty hack I made in less than a day that fixed the problem for the day "fixed" the problem for the next year.
Lesson learned that temporary structures and side projects will be there forever. Make them right the first time.1 -
Try to have a partner so you actually feel you need to work on it otherwise they get pissed and start nagging.2
-
If it's an open source project and it (shock horror) actually gets a decent userbase, expect it to suck up *way* more time than you originally intended.
-
Side projects teach you more than anything, I learnt all the new android technologies by working on my side projects1
-
If you're working on close to hardware things, make sure you run static analysis, and manually inspect the output of your compiler if you feel something's off - it may be doing something totally different from what you expect, because of optimization and what not. Also, optimizations don't always trigger as expected. Also, sometimes abstractions can cost a fair amount too (C++ std::string c/dtor, for example, dtors in general), more than you'd expect, and in those cases you might want to re-examine your need for them.
Having said all that, also know how to get the compiler to work for you, hand-optimization at the assembly level isn't usually ideal. I've often been surprised by just how well compilers figure out ways to speed up / compactify code, especially when given hints, and it's way better than having a blob of assembly that's totally unmaintainable.
Learnt this from programming MCUs and stuff for hobby/college team/venture, and from messing around with the Haskell compiler and LLVM optimization passes.3 -
That I really hate svn.
It is completely useless compared to git and I can not understand why one would use it for any project with more than two people.7 -
Make a folder about your idea, generate a visual studio solution about it, and bam, you got something to write in your resume.1
-
For me side projects have been things I'll make to do something that others will use. Some people call it innovation, some call it side business. But that's how i look at side projects. So the points below are more to do with entrepreneurial experiences.
1. If there are more people involved, ensure that there is work for everybody (also level of commitment is tested by how much they put in). Also have as varied set of skills as possible. So that areas are well defined in terms of scope of work and areas of expertise.
2. Put in some money. Money is super glue. It will ensure that you're committed to the thing. Things change when decent amount of money is involved. You're invested, as may be others.
3. Learn something as an intention. This has nothing to do with the learnings you'll get on the way. This one seems obvious, but nevertheless needs to be said.
4. Set timelines and deadlines. Ask someone else to check on whether you're keeping on to your deadlines or not.
5. Don't go live without proper testing.
6. Make something you feel strongly about. The path will be exciting and clear.
7. Talk to people to get their feedback on everything. You may not like what's told to you. Listen dispassionately. Absorb everything. Feel miserable. But listen and think about it after sleeping over it.
8. Continuation of above point. Talk to varied set of people in terms of backgrounds. You would be surprised as to how differently people think.
9. Ask for help when stuck. Kill your ego and be vulnerable.
10. Check out what's already available. What value are you adding. And make it! -
TL;DR: TIL for heavy queries use PDO and not some frameworks DB class
ffs I was trying to save 300k+ lines at once with Laravel for weeks. Mind you from a text file. 1gb ram on the vps so while trying to prepare the text to save: Fatal Error: Allowed Memory Size of bla bla Bytes Exhausted
ok so lets put it in a loop: Fatal error: Maximum execution time of 30 seconds exceeded (set_time_limit(0); lol)
optimising, varying the code got me into a situation when the content got saved in the BD but inconsistent (duplicates) and the table had often more than 1,5M rows. That was what told me its not a performance issue, my code is the issue. (dah)
I was starting to think it would be easier to export a prepared query to a sql file and load the file into the db as thats the fastest possible option...I even started to think about switching to python, then it hit me, Laravel has a shitload of routes to the DB so I switched to PDO
benchmark on 1vCPU, 1GB RAM VPS with SSD
379k lines with 11 columns in less than 10 sec with a loop of saving every ~6000 rows (if i tried choking it to save the whole thing at once it went up to 16-17sec)2 -
Change one thing a day, stick with plan, do one thing at a time and be consistent and after 356 days or less you would have a product.
-
Need motivation as a starting point. Forget about finishing side projects, need the motivation to start one first!2
-
Side projects are one of the biggest battery booster you can have.
For me it's common to get burnt out with fixing a bug or refactoring some pretty old logic, and working in side projects is a nice break to recharge the batteries without necessarily getting your mind totally out of programming. It doesn't matter if they are yours our someone else's, they can do wonders.
(Also, it's good to learn different stuff from what you are used to, like frontend developer working on some back-end logic in a side project)1 -
the more you do side projects the more you learn, the more you become better option to human resource managers
-
What I've learned from working on side projects is that distraction is caused by poor time management and planning skills. Why is this realization so important? Because it applies to every area of your life. Just think about it.
-
Nobody has any use from a 80% finished project (so not finished at all) except it was a lot of time and money to get to that point. Oh boy I need to make progress on about 500 different projects to get them to a useful stage.
Also very important lesson: Dont have your anxiety take over when facing the "omg I have a 6 digit number of things on my 2do list" because you can't say no to the "awesome" ideas you have.
Also: I have made a rule for myself that prevents me from starting/working on a side project when I have important deadlines on main projects2 -
Not just for hobbies, better make some money out of it. Otherwise, it becomes more of skills upgrade. Collaborate and try really make $$$. It's all about extra $$$
-
The biggest things I’ve probably learned working on side projects are patience and planning. Side projects are a great place to hone your skills of negotiation with other people, but I’ve personally learned a great deal about the process of architecture, simply by doing side projects where I’ve experienced scoping and tooling problems later on. Being patient lends itself to getting better at planning. Working with others on side projects has given me insight into “when to hold em and when to fold em”...and again, this patience education has often helped me be a better planner for a multitude of tasks.
-
I learned that you should never trust someone saying "let me setup the basics for the project" if someone said that they'll probably come back with a book as thick as earth (round one) just to run that "basic" project. And yet it still won't run because errors and missing packages. Also they documented only half of the fixes they applied to get it running themselves.
Oh and then you only reached the point where you have no motivation left and only have a blank template to start. -
I think it involves a great amount of determination and time management skills.
I've learnt to manage my time wisely. I pretty much run my whole life on a bullet journal, it works for me.
I might wanna make a bullet journal app one day so that I can finally be happy with a digital bullet journal without excessive features.
And to all out there working on a side project right now, good luck..!1 -
Work on it every day for max 30 minutes or something, instead of waiting for a day were I have more time.
-
Coding a side project is easy. Turning it into a profitable business is the hardest part. A wrong decision can kill it.1
-
- Learned how to use Git properly;
- learning how to use SASS and building the stylesheet of this all by myself;
- Learned how to reuse my code all over the project;
- Made my first design pattern and ruleset to create and maintain a project. -
Think about how big this project could get. Use version control. Build anything as future-oriented as possible. Use all common standards.
I still have some quick'n'dirty side projects that don't let me sleep well sometimes: "Nah, it will be a one time thing, no body will use it anyway" ... -
...tfw management shifts your priorities suddenly, for the next 2 days, and it requires that you completely alter your environment from what you have been building up for the last two weeks...