Daily Deal: The Complete C++ Programming Bundle

from the good-deals-on-cool-stuff dept

C++ is an object-oriented programming language that is viewed by many as the best language for creating large-scale applications. The Complete C++ Programming Bundle will help you on your way to mastering this important language. With 67+ hours of tutorials, you'll move through the fundamentals of C++ and onto more advanced techniques. This bundle is available in the Techdirt Deals Store for $45.


Note: The Techdirt Deals Store is powered and curated by StackCommerce. A portion of all sales from Techdirt Deals helps support Techdirt. The products featured do not reflect endorsements by our editorial team.
Hide this

Thank you for reading this Techdirt post. With so many things competing for everyone’s attention these days, we really appreciate you giving us your time. We work hard every day to put quality content out there for our community.

Techdirt is one of the few remaining truly independent media outlets. We do not have a giant corporation behind us, and we rely heavily on our community to support us, in an age when advertisers are increasingly uninterested in sponsoring small, independent sites — especially a site like ours that is unwilling to pull punches in its reporting and analysis.

While other websites have resorted to paywalls, registration requirements, and increasingly annoying/intrusive advertising, we have always kept Techdirt open and available to anyone. But in order to continue doing so, we need your support. We offer a variety of ways for our readers to support us, from direct donations to special subscriptions and cool merchandise — and every little bit helps. Thank you.

–The Techdirt Team

Filed Under: daily deal


Reader Comments

Subscribe: RSS

View by: Time | Thread


  • identicon
    Lawrence D’Oliveiro, 23 Jun 2016 @ 2:38pm

    What Version Of C++?

    Recent C++ standards include C++11 and C++14. Does this course cover them? Doesn’t say. For example, Microsoft Visual C++ doesn’t implement the newer standards very well, so to learn them you would be better off with, say, GCC.

    Also, I like this quote from the blurb:

    “Learning C++ will set you apart from other programmers in the market as it is a vast and complex language that will make learning any other language much easier.”


    You may need to unlearn a bunch of C++ stuff before learning a more high-level language like Python...

    link to this | view in chronology ]

    • identicon
      Pseudonym, 23 Jun 2016 @ 9:21pm

      Re: What Version Of C++?

      "You may need to unlearn a bunch of C++ stuff before learning a more high-level language like Python..."

      According to my resume, I speak over 60 programming languages to varying levels of fluency. My postgrad work was on compilers, in case you were curious, and I still do the Pragmatic Programmers thing of a new language every year.

      No matter what your first programming language is, you need to unlearn stuff to learn your second programming language. There does come a point where you no longer need to unlearn anything, which happens somewhere around the 4th paradigm.

      Incidentally, you probably have to unlearn more going from Python to C++ than you would going from C++ to Python. C++ has sane variable scoping rules, for a start.

      link to this | view in chronology ]

      • identicon
        Lawrence D’Oliveiro, 24 Jun 2016 @ 2:42am

        Re: sane variable scoping rules, for a start.

        That can cope with this?

            if freetype2 != None :

                @staticmethod
                def create_for_ft_face(face, load_flags = 0) :
                    "creates a FontFace from a freetype2.Face."
                    if not isinstance(face, freetype2.Face) :
                        raise TypeError("face must be a freetype2.Face")
                    #end if
                    cairo_face = cairo.cairo_ft_font_face_create_for_ft_face(face._ftobj, load_flags)
                    result = FontFace(cairo_face)
                    if cairo.cairo_font_face_get_user_data(cairo_face, ct.byref(_ft_destroy_key)) == None :
                        check(cairo.cairo_font_face_set_user_data
                           (
                            cairo_face,
                             ct.byref(_ft_destroy_key),
                            ct.cast(face._ftobj, ct.c_void_p).value,
                            freetype2.ft.FT_Done_Face
                           ))
                        freetype2.check(freetype2.ft.FT_Reference_Face (face._ftobj))
                          # need another reference since Cairo has stolen previous one
                          # not expecting this to fail!
                    #end if
                    result.ft_face = face
                    return \
                        result
                #end create_for_ft_face

                @staticmethod
                def create_for_file(filename, face_index = 0, load_flags = 0) :
                    "uses FreeType to load a font from the specified filename, and returns" \
                    " a new FontFace for it."
                    _ensure_ft()
                    return \
                        FontFace.create_for_ft_face(ft_lib.new_face(filename, face_index), load_flags)
                #end create_for_file

            else :

                @staticmethod
                def create_for_ft_face(face) :
                    "not implemented (requires python_freetype)."
                    raise NotImplementedError("requires python_freetype")
                #end create_for_ft_face

                @staticmethod
                def create_for_file(filename, face_index = 0, load_flags = 0) :
                    "uses FreeType to load a font from the specified filename, and returns" \
                    " a new FontFace for it."
                    _ensure_ft()
                    ft_face = ct.c_void_p()
                    status = _ft.FT_New_Face(ct.c_void_p(_ft_lib), filename.encode("utf-8"), face_index, ct.byref(ft_face))
                    if status != 0 :
                        raise RuntimeError("Error %d loading FreeType font" % status)
                    #end if
                    try :
                        cairo_face = cairo.cairo_ft_font_face_create_for_ft_face(ft_face.value, load_flags)
                        result = FontFace(cairo_face)
                        check(cairo.cairo_font_face_set_user_data
                          (
                            cairo_face,
                            ct.byref(_ft_destroy_key),
                            ft_face.value ,
                            _ft.FT_Done_Face
                          ))
                        ft_face = None # so I don't free it yet
                    finally :
                        if ft_face != None :
                            _ft.FT_Done_Face(ft_face)
                        #e nd if
                    #end try
                    return \
                        result
                #end create_for_file

            #end if freetype2 != None

        link to this | view in chronology ]

        • identicon
          Anonymous Coward, 27 Jun 2016 @ 5:10am

          Re: Re: sane variable scoping rules, for a start.

          Now why the hell would you want to do that? And in Python to boot! Talk about language abuse...
          I mean this is basically "pythonized" C FFS.

          Python was never meant for this kind of crap...

          link to this | view in chronology ]

  • identicon
    Umar Babankanwa, 25 Jun 2016 @ 6:11am

    c-programming

    want to learn and teach c++,as the best object oriented programming language.I have found the patfom in your course and very interesting.

    link to this | view in chronology ]


Follow Techdirt
Essential Reading
Techdirt Deals
Report this ad  |  Hide Techdirt ads
Techdirt Insider Discord

The latest chatter on the Techdirt Insider Discord channel...

Loading...
Recent Stories

This site, like most other sites on the web, uses cookies. For more information, see our privacy policy. Got it
Close

Email This

This feature is only available to registered users. Register or sign in to use it.