• Breaking News

    Sunday, April 12, 2020

    How do I get from learning a new language to actually using it? learn programming

    learn programming

    How do I get from learning a new language to actually using it? learn programming


    How do I get from learning a new language to actually using it?

    Posted: 11 Apr 2020 09:46 AM PDT

    I have been learning coding on my own for the past two to three years. I have reached a point where I'm fairly comfortable with python. Like I know the syntax, functions, basic OOP concepts and all.

    Okay now coming to my problem, I tried to browse through some Github repos to see how to actually make stuff. And I feel completely overwhelmed by the stuff I see. I don't know how to actually apply the things I've learnt in real life. Where do I learn how to actually make real life programs?

    Let's take this github repo as an example. How do you package code like that? How do you know how to split your code to different files? How to package them? What is this pip?

    The problem is I know python. But not the nuances of actually making stuff with it. Where and how do I aquire that skill?

    Any help is appreciated. And sorry for my bad English.

    submitted by /u/sid_talks
    [link] [comments]

    Amazon coding online assessment - given ~48 hours to complete it

    Posted: 11 Apr 2020 11:02 AM PDT

    well, hopefully I'll get more time, but that was interesting.

    Frankly I've been just dealing with learning the Rails framework for work. I'm quite confident in Ruby and the ability to figure things out - even though I actually feel a bit relatively rusty in terms of the rote problems solving practice - but I don't come from a CS background and haven't yet filled the gaps quite yet, so there is expected to be some areas that are faulty. I just don't want to bomb it, though I hope to take it as a good learning experience regardless of what happens.

    Tips and advice?

    submitted by /u/raisly_questions
    [link] [comments]

    I have an advice on how to stay motivated

    Posted: 11 Apr 2020 07:01 PM PDT

    Whenever working on a big project that takes time, make a 'to do' list where whenever you stop coding. There you should list the problems, ideas, thoughts, bugs, tasks and conjectures about why your code does not work.

    Now I found it really helps to maintain the program for a long period of time, helps with directing towards the goal and it is very satisfying to write (done) near any progress you have made.

    Good Luck!

    submitted by /u/Fredric_Chopin
    [link] [comments]

    Components of a professional software engineer

    Posted: 11 Apr 2020 02:03 PM PDT

    Hi,

    I decided to use the free time that came from we all know where to write articles about misconceptions that people often have about software engineering as a profession as well as approaches to becoming a software engineer.*Disclaimer* All that I am about to write is based on my own experience and interpretation of it. Also, the information is directed towards people who want to become a professional software engineer, i.e. hobbyists will probably not gain any useful insight.

    *Disclaimer 2* English is my third language so if you find my writing style unpleasant I'll be happy to fix spelling and grammar issues if you tell me how :)

    I came up with the idea to write this all up because I am often asked questions by people outside of the field but who consider entering it. Might as well point them to the articles I wrote.

    If such content appeals to the general public of this subreddit I'll create a "blog" kind of site where all of these will be compiled. Please, provide feedback, even if you hate the article. Maybe I shouldn't waste my time publishing this :)

    But onto the article:

    Components of a professional software-engineer

    The percentages are derived from my own experience and are not aiming for any kind of precision. I use them to illustrate relative importance of a trait for a successful career. Treat them as a ballpark number.

    Fundamentals (5%)

    Every professional software-engineer apart from junior developers should have their fundamentals rock-solid. It is considered fine when a junior dev struggles with syntax occasionally.

    The fundamentals usually include: knowledge of the programming language the company or team uses, knowledge of common programming concepts, control structures — basically writing code. In my opinion this is the part that gets a lot of people confused — they think that software engineering is about writing code and figuring out where to put a semicolon to make code compile. In practice, I've never had any conversations about how to write a loop structure or how to declare a function. These things are second nature to a professional and are done without any effort whatsoever.

    Domain knowledge (15-80%)

    Now it is getting interesting. Any useful software system solves a problem in a certain domain. The professional developing the solution must have knowledge about the domain in order to do his work. The degree to which the developer must be competent in the domain varies greatly (hence 15 to 80 percent in the heading). In some teams there are analysts who do most of the work with the domain and provide precise specifications of what needs to be implemented. Other teams might leverage the domain knowledge that developers have themselves, e.g. a team that develops a compiler will probably consist of people who have the expertise to execute such a task.

    One of my first jobs was at an investment bank. Straight away after joining I had to undertake a three-week training on financial instruments and banking work in general. About 90% of my brain power was involved in figuring out how the instruments work in theory and why they are producing incorrect results in our software. After the error in the domain was detected, implementation of the fix took a matter of minutes. This is an example of an insanely domain heavy development position — something you really need to take in account when choosing where to apply. I did not know that I hate banking before working there and suffered daily.

    A popular trend these days is AI, which in my opinion is another heavily domain based field. The domain is pretty much mathematical modeling and statistics. The development parts often revolves around an already implemented AI engine.

    In general, you will rarely encounter a position, where you will not be expected to have (or acquire as you proceed to work) any domain knowledge relating to the problem solved by the system.

    Library and tool knowledge (20%)

    These are the things that you usually learn at work right after you are hired. Employers generally don't care which IDE were you using before: you will either have to use whatever IDE the company has licenses for or you can use whatever you want. Smart employers will usually not care whether you know a specific language if you know an analogous one. This is due to the fact that smart employers test for conceptual knowledge during interviews, they are looking for competent people who are willing and able to learn.

    Of course some interview will require you to know a certain language and a certain library or whatever else they think is important, but I don't care for such employers and usually skip their invitations.

    Once I managed to pass an interview for a C# position without ever using C#. I knew C++ and kind of *seen* how C# looks. The interviewers didn't suspect anything and hired me.

    System design skills (10%-70%)

    The variety in percentages depends on how high your position is. Junior developers are usually not allowed to work on core features and code which is shared and used by other teams, therefore they do not require exceptional architecture and design skills. They will work on an isolated feature which does not have substantial impact on other teams. On the other end of the spectrum Senior developers are usually the ones who are allowed to tackle problems in the very heart of systems. Mistakes that they make can impact the whole product or even the company, so they are expected to experts in software design and architecture. The higher your position, the bigger the picture you must see.

    Soft skills/Communication skills (40-60%)

    Unless you are a solo developer working on your own project you will need to interact with other developers in your team or in other teams, members of Quality Assurance teams, analysts, management, sometimes even clients.

    The romanticized programmer is one who is sitting alone in a dark room, wearing a hoodie and just tapping away on the keyboard. In reality, communication is one of the most important skills a developer can have. You will constantly have to justify your own designs, propose ideas for solutions, communicate with testers on standing bugs and issues. Your email will be overflown by information which you must organize effectively. Your voice needs to be heard in meetings. This is the reality of the profession, hate it or love it. I learned to enjoy using my soft skills after I understood how my inability to clearly express my opinion can lead to unpleasant consequences, like rewriting parts of the system after a failed attempt or justifying the reasons why I didn't communicate a known issue and it reached the release stage of the product. As a matter of fact according to my direct manager the improvement of my soft skills was one of the main reasons for my recent promotion. Do not ignore this point.

    Engineering discipline (30%)

    By discipline I mean work that has to be done in order to improve the intangible quality of the product: adding logging statements, handling errors, maintaining comments, writing clear commit messages etc. This kind of repetitive work is immensely important but is one of the most overlooked. It stems from the fact that whatever facility you use to educate yourself does not demand these things from you. I've never written a single log statement during all of my university years. Similar situation with error handling: I just didn't expect errors in my coursework to happen.

    In real life however network connections constantly break off, databases fail, hardware fails — everything fails. When it all fails on a client's site, the only way how you can figure out what went wrong is by the logs that you receive. Do not neglect them!

    Conclusion

    I'll repeat that the percentages are just for illustrating how I feel the weight of each component might impact a career of a software engineer. They can heavily vary depending on the company or position. Each company is somewhat unique in this regard.

    If you are a junior developer (or are still trying to enter the field) I would strongly advise focusing on fundamentals and discipline. Soft skills might come handy as well. System design will not help someone who has never seen a real life software product. Juniors are usually not expected to have any domain knowledge whatsoever.

    If you are advancing in your career and want to reach a new height or get promoted your fundamentals and discipline have to be impeccable. Your soft skills should be constantly improving. You probably need to focus on system design and architecture, but this depends mostly on the specifics of your team and company.

    I will provide tips and guidelines in how to improve in each of these components in a future article.

    P.S. Another set of articles is currently in the works, most of the listed ones are in draft state and can be published after proofreading, tell me which one would you like to see sooner:

    - "Is programming easy? Is becoming a software engineer easy?"

    - "Regarding computer science degrees"

    - "Methods of advancing towards a career"

    - "Thoughts on why tutorials will fail to advance your learning"

    submitted by /u/nphyro
    [link] [comments]

    What things will i need to learn to be able to say I know python?

    Posted: 12 Apr 2020 12:30 AM PDT

    Or any other language for that matter.

    submitted by /u/eallnickname
    [link] [comments]

    Programming Pals?

    Posted: 11 Apr 2020 07:23 PM PDT

    Anybody interested in being programming pals? Tackling problems on leetcode and learning some python + web development frameworks? DM me if interested, thanks!

    submitted by /u/RoosterUnchained
    [link] [comments]

    Beginner

    Posted: 11 Apr 2020 05:10 PM PDT

    Hello everyone, I want to learn python, this is going to be my first ever programming language. However I don't how to go about it or where to start. Can anyone please recommend any sites, books or what steps I should take?

    submitted by /u/omoologo24
    [link] [comments]

    How reputable and useful are Popular Science‘s Coding Bundles?

    Posted: 11 Apr 2020 06:33 AM PDT

    There is a thought in my head, that www.popsci.com is not the most reputable and useful site when it comes to buying coding and ethical hacking courses. Do you guys have any experience you do not mind sharing? I really want to start somewhere in the huge computer science world. And I am open for any suggestions on websites or helpful tutorials. Thanks a lot in advance

    submitted by /u/GaIbora
    [link] [comments]

    I am a total noob, I have almost no clue at what github is, would anyone be able to just briefly explain?

    Posted: 11 Apr 2020 03:57 PM PDT

    So I am in year 10 (14 years old) and I have taken computer science for my GCSE's. My teacher is pretty useless and so I decided to try start teaching myself, Covid-19 does help in this instance and is definitely the perfect time to learn new skills. Anyways, on almost all the threads I read they talk about github in some way. Now I have already looked online as to what it is but I am still not sure how it works fully, why does everyone use it? Do I need to have a github account to be "successful"?

    I'm very new to actually creating projects that are useful and don't really know any terminology that you guys would use also the python we practice at school isn't really useful in real scenarios, I'm trying to apply what I learn to my school work so i can make my learning more efficient :) I've heard that I should just get started and think of a program I want to create and just try create it.

    Thank you for all your help, hope you are all staying safe :)

    submitted by /u/CaitlinW05
    [link] [comments]

    What things will i need to learn to be able to say I know python?

    Posted: 12 Apr 2020 12:30 AM PDT

    Or any other language for that matter.

    submitted by /u/eallnickname
    [link] [comments]

    If I try to implement pure virtual functions there should be a drop-down menu right?

    Posted: 11 Apr 2020 10:59 AM PDT

    If I inherit from an interface and try to implement the pure virtual functions,

    when I type out the names of the methods there should be a drop down menu

    and suggest an autofill right? If that doesn't happen then is something wrong?

    So far I have:

    template<class ItemType> class SortedListInterface { public: /** Inserts an entry into this sorted list in its proper order so that the list remains sorted. @pre None. @post newEntry is in the list, and the list is sorted. @param newEntry The entry to insert into the sorted list. */ virtual bool insertSorted(const ItemType& newEntry) = 0; 

    and then:

    #ifndef LINKED_SORTED_LIST_ #define LINKED_SORTED_LIST_ template<typename itemtype> class LinkedSortedList : public SortedListInterface<itemtype>{ public: bool inserts }; 
    

    No comments:

    Post a Comment